在Express应用程序中执行Express会话和Passport会话冲突?为什么或者为什么不?
以下是区分Express和Passport会话对象的一些代码:
app.use(express.session({})); app.use(passport.session()); app.use(session({ cookie : { maxAge : 60000 } }));
解决方法
不,他们是两个分开的事情,他们不冲突另一个.此外,为了正常工作,必须在express.session之后使用护照.
express.session中间件用于从数据存储区(如Redis)检索用户会话.我们可以找到会话对象,因为会话ID存储在cookie中,每个请求都提供给服务器.
然后,护照中间件的目的是使用passport.serializeUser函数(您在护照配置中定义的)函数对会话中的用户对象进行反序列化.当用户首先认证自身时,其用户对象被序列化并存储在会话中.在每个以下请求中,中间件反序列化用户并填充req.user对象.
检查Passpot Configure Guide和这个答案:What does passport.session() middleware do?了解更多细节