Jelajahi Sumber

fix: redirect to previous path after login

NGPixel 5 tahun lalu
induk
melakukan
ff5acba358
2 mengubah file dengan 12 tambahan dan 1 penghapusan
  1. 7 1
      client/components/login.vue
  2. 5 0
      server/controllers/common.js

+ 7 - 1
client/components/login.vue

@@ -294,7 +294,13 @@ export default {
                 this.loaderTitle = this.$t('auth:loginSuccess')
                 Cookies.set('jwt', respObj.jwt, { expires: 365 })
                 _.delay(() => {
-                  window.location.replace('/') // TEMPORARY - USE RETURNURL
+                  const loginRedirect = Cookies.get('loginRedirect')
+                  if (loginRedirect) {
+                    Cookies.remove('loginRedirect')
+                    window.location.replace(loginRedirect)
+                  } else {
+                    window.location.replace('/')
+                  }
                 }, 1000)
               }
             } else {

+ 5 - 0
server/controllers/common.js

@@ -245,6 +245,11 @@ router.get('/*', async (req, res, next) => {
       pageArgs.tags = _.get(page, 'tags', [])
 
       if (!WIKI.auth.checkAccess(req.user, ['read:pages'], pageArgs)) {
+        if (req.user.id === 2) {
+          res.cookie('loginRedirect', req.path, {
+            maxAge: 15 * 60 * 1000
+          })
+        }
         if (pageArgs.path === 'home' && req.user.id === 2) {
           return res.redirect('/login')
         }