В качестве части руководства я использовал express-session
и Passport.js
(локальная стратегия) для аутентификации простого веб-приложения.
Поэтому, когда я проверяю заголовок запроса при входе в систему с разными пользователями , я вижу тот же идентификатор сеанса, что и значение Cookie:
Cookie: connect.sid="some_encrypted_string"
Разве cookie не должен быть уникальным для каждого пользователя?
Но 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
хранит идентификатор в том же файле cookie сеанса, или он должен создать новый файл cookie сеанса для каждого пользователя?
Как работает serializeUser
и deserializeUser
?