Browse Source

登录后恢复上一个页面

olym 7 years ago
parent
commit
d61a9573ba
3 changed files with 16 additions and 8 deletions
  1. 9 2
      modules/users/controllers/login_controller.js
  2. 3 4
      server.js
  3. 4 2
      web/users/js/login.js

+ 9 - 2
modules/users/controllers/login_controller.js

@@ -63,7 +63,7 @@ class LoginController {
             request.session.sessionUser = sessionUser;
             // 记录用户数据到数据库
             let result = await userModel.markUser(sessionUser, request);
-            console.log(request.session);
+
             // 获取偏好设置
             let settingModel = new SettingModel();
             preferenceSetting = await settingModel.getPreferenceSetting(request.session.sessionUser.id);
@@ -88,7 +88,14 @@ class LoginController {
             console.log(error);
             return response.json({error: 1, msg: error});
         }
-        response.json({error: 0, msg: '', login_ask: preferenceSetting.login_ask, compilation_list: JSON.stringify(compilationList)});
+        console.log(request.session.lastPage);
+        response.json({
+            error: 0,
+            msg: '',
+            login_ask: preferenceSetting.login_ask,
+            compilation_list: JSON.stringify(compilationList),
+            last_page: request.session.lastPage
+        });
     }
 
 }

+ 3 - 4
server.js

@@ -66,9 +66,7 @@ app.use(session({
 // 登录状态全局判断
 app.use(function (req, res, next) {
     let url = req.originalUrl;
-    // @todo 上一个页面跳转
-    let referer = '';
-    if (/^\/login/.test(url)) {
+    if (/^\/login/.test(url) || /\.map$/.test(url)) {
         // 如果是登录页面则忽略判断数据
         next();
     } else {
@@ -78,9 +76,10 @@ app.use(function (req, res, next) {
             if (!sessionUser) {
                 throw 'session error';
             }
-
             res.locals.sessionUser = sessionUser;
         } catch (error) {
+            // 最后一个页面存入session
+            req.session.lastPage = url;
             return res.redirect('/login');
         }
 

+ 4 - 2
web/users/js/login.js

@@ -21,13 +21,15 @@ $(document).ready(function () {
             data: {"account": account, "pw": pw},
             success: function (response) {
                 if (response.error === 0) {
+                    const url = response.last_page !== null && response.last_page !== '' ?
+                        response.last_page : '/pm';
                     if (response.login_ask === 0) {
-                        location.href = '/pm';
+                        location.href = url;
                     } else {
                         response.compilation_list = response.compilation_list === undefined || response.compilation_list === '' ?
                             null : JSON.parse(response.compilation_list);
                         if (response.compilation_list === null || response.compilation_list.length <= 0) {
-                            location.href = '/pm';
+                            location.href = url;
                             return false;
                         }
                         setVersion(response.compilation_list);