什么是passport.initialize()? (nodejs express)
我正在尝试在我的应用程序中应用护照模块。
我正在阅读一些手册,并说,
app.use(passport.intialize()); app.use(passport.session());
什么是app.use(passport.initialize())
到底在干什么?
passport.session()
也许是为护照使用会话信息,
但我不知道passport.initialize()
passport.intialize()
是初始化Passport的中间件。
中间件是可以访问请求对象(req),响应对象(res)和应用程序的请求 – 响应周期中的下一个中间件function的函数。
Passport是一个身份validation中间件,用于对请求进行身份validation。
所以基本上passport.intialize()
初始化validation模块。
passport.session()
是另一个中间件,用于改变请求对象,并将当前会话ID(从客户端cookie)的“用户”值更改为真正的反序列化的用户对象。 这里详细解释。
从Passportjs文档:
在Connect或基于Express的应用程序中,需要passport.initialize()中间件来初始化Passport。 如果您的应用程序使用持久login会话,则还必须使用passport.session()中间件。
如果我们看一下源代码 ,我们可以看到passport.initialize()中间件基本上将passport实例添加到传入请求中,以便可以继续进行身份validation策略。
如果有会话,它也会被添加到请求中。