Express会话与PassportJS会话

Ale*_*lls 14 express passport.js

Express应用程序中的Express会话和Passport会话冲突吗?为什么或者为什么不?

以下是一些区分Express和Passport会话对象的代码:

    app.use(express.session({}));
    app.use(passport.session());

    app.use(session({
        cookie : {
            maxAge : 60000
        }
    }));
Run Code Online (Sandbox Code Playgroud)

luk*_*zer 25

不,它们是两个不同的东西,它们与其他东西没有冲突.而且,为了正常工作passport.session必须使用express.session.

express.session中间件用于从数据存储区(如Redis)检索用户会话.我们可以找到会话对象,因为会话ID存储在cookie中,每次请求都会提供给服务器.

然后,passport.session中间件的目的是使用passport.deserializeUser函数(您在护照配置中定义)从会话反序列化用户对象.当用户首次对自身进行身份验证时,其用户对象将被序列化并存储在会话中.在每个后续请求中,中间件反序列化用户并填充req.user对象.

检查Passpot配置指南和这个SO答案:passport.session()中间件有什么作用?欲获得更多信息.

  • 如果不使用express-session,passor-session会工作吗? (2认同)