[英]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.