簡體   English   中英

req.session.returnTo 未定義

[英]req.session.returnTo is undefined

我正在使用護照通過不和諧 oauth2 對我的用戶進行身份驗證。 我希望他們被重定向回他們來自的同一頁面,而不是主頁或儀表板。

我嘗試將 URL 存儲在會話中,如此所述,但它不會持續到下一個請求。

我需要身份驗證的頁面的中間件:

module.exports = (req, res, next) => {
  if (req.user) {
    next();
  }
  else {
    req.session.returnTo = req.originalUrl;
    res.redirect('/auth');
  }
};

認證路線:

router.get("/auth", passport.authenticate("discord"));

router.get("/auth/redirect", passport.authenticate("discord", {
  failureRedirect: "/auth/forbidden"
}), (req, res) => {
  console.log(req.session); // doesnt have returnTo inside anymore ?
  res.redirect(req.session.returnTo || '/');
  delete req.session.returnTo;
});

console.log 顯示用戶已成功通過身份驗證,但 returnTo 字段不再存在。

嗨,我遇到了同樣的問題,嘗試將 keepSessionInfo: true 添加到 passport.authenticate。

  router.get("/auth", passport.authenticate("discord"), {
     failureRedirect:"/auth/forbidden", keepSessionInfo: true }), (req, 
  res)  => {
  console.log(req.session); // doesnt have returnTo inside anymore ?
  res.redirect(req.session.returnTo || '/');
  delete req.session.returnTo;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM