对于 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。