作为本教程的一部分,我使用了express-session
和Passport.js
(本地策略)来对简单的Web应用程序进行身份验证。
因此,当我用不同的用户登录时检查请求标头时,我看到的会话ID与Cookie值相同:
Cookie: connect.sid="some_encrypted_string"
Cookie是否对每个用户来说都是唯一的?
但是为不同的用户使用不同的用户ID调用deserializeUser
回调,这怎么可能?
passport.deserializeUser(function(id, done) {
// Below line prints different id for each user.
console.log(`The User ID stored in session store: ${id}`);
User.findById(id, function(err, user) {
done(err, user); // called by req.isAuthenticated()
});
});
serializeUser
会将ID存储在同一会话cookie中,还是应该为每个用户创建一个新的会话cookie?
serializeUser
和deserializeUser
如何工作?