Passport的使用
基本步骤:
-
初始化:
app.use(passport.initialize()); -
安装策略:
passport.use(new BasicStrategy(...)) -
使用策略:
app.get('/...', passport.authenticate('basic'),(req,res)=>{...}) -
其他方便函数:
-
req.user登陆后存在 -
req.login()仅在注册时手工调用。登陆时由策略自动调用。 -
req.logout()登出时调用
-
用户登录分为无session的和有session的。
- 无session的,如basic-auth,在每次使用时都要检查
app.get('/api/users/me',
passport.authenticate('basic', { session: false }),
function(req, res) {
res.json({ id: req.user.id, username: req.user.username });
});
-
有session的,在第一次由
策略=>user。之后每次由sessionid=>user-
策略=>user又分为2步- web数据=>策略参数
- 策略参数=>user
-
sessionid=>user也包含2件事serializeUser: user=>sessioniddeserializeUser: sessionid=>user
-
authenticate的作用
-
接受web数据,调用策略进行验证。通常绑定到'/login'路由,该路由负责传递所需的web数据。










网友评论