瀏覽代碼

fix: loginRedirect doesn't work for non local strategies (#3222)

PaulD987 4 年之前
父節點
當前提交
3f001dca2c
共有 1 個文件被更改,包括 13 次插入1 次删除
  1. 13 1
      server/controllers/auth.js

+ 13 - 1
server/controllers/auth.js

@@ -71,7 +71,19 @@ router.all('/login/:strategy/callback', async (req, res, next) => {
       strategy: req.params.strategy
     }, { req, res })
     res.cookie('jwt', authResult.jwt, { expires: moment().add(1, 'y').toDate() })
-    res.redirect(authResult.redirect)
+
+    const loginRedirect = req.cookies['loginRedirect']
+    if (loginRedirect === '/' && authResult.redirect) {
+      res.clearCookie('loginRedirect')
+      res.redirect(authResult.redirect)
+    } else if (loginRedirect) {
+      res.clearCookie('loginRedirect')
+      res.redirect(loginRedirect)
+    } else if (authResult.redirect) {
+      res.redirect(authResult.redirect)
+    } else {
+      res.redirect('/')
+    }
   } catch (err) {
     next(err)
   }