在express-session中,我遇到了使用nodejs维护持久会话的问题。
在logincontroller.js中
if(!req.session.authEmail)
req.session.authEmail = req.body.data.datasendtonode.signInEmailId;
console.log(req.session.authEmail);此显示会话值
在tokenSignIn.js中
var useremail=req.session.authEmail;
console.log(useremail);此显示未定义
发布于 2020-04-06 06:02:48
您必须更详细地说明问题的流程,并显示会话的配置参数,但如果是重定向之间的持久化问题,在文档中,建议在重定向请求之前保存会话。
router.get('/auth', (req, res, next)=>{
// YOUR PREVIOUS CODE
if(!req.session.authEmail){
req.session.authEmail = req.body.data.datasendtonode.signInEmailId
}
// YOUR NEXT CODE
req.session.save((err)=>{
if(!err){
return res.redirect('/theRouteToRedirect')
}
else { console.log(err) }
})
})发布于 2020-04-18 21:49:08
默认情况下,express会将会话存储在内存中,每次重新启动应用程序时,会话都会丢失。如果你想让你的会话持久化,你必须检查一些像redis-connect或者mongo-connect这样的东西。
显示您的身份验证过程和当前会话设置,以便我们可以更好地回答您的问题。
https://stackoverflow.com/questions/53493798
复制相似问题