对于 Connect/Express 应用程序,
1.var passport = require('passport');
添加了以下四个辅助函数http.IncomingMessage.prototype
(即请求对象的原型):
- 登录/登录(用户,[选项,]完成)
- 注销/logOut()
- isAuthenticated() - 即是否
req.user
存在。
- 是未经身份验证的()
如果用户认证成功,通常会调用回调函数done(null, user)
。然后,此回调函数调用req.logIn()
后者调用serializeUser()
将用户 ID 存储为req._passport.session.user
.
函数req.logOut()
删除.req._passport.session.user
2.app.use(passport.initialize());
从当前会话中获取护照信息并将其存储为req._passport.session
(即,req.session['passport']
)。
3.app.use(passport.session());
检查是否req._passport.session.user
存在,即当前会话中是否存储了用户id。如果是,则调用deserializeUser()
以获取将存储为的用户对象req.user
。