Я использую Express 4 с Node.js. Я успешно реализовал Passport для аутентификации с именем пользователя/паролем. Но как мне получить Passport для аутентификации только с информацией о сеансе?Экспресс: использование паспорта для аутентификации с использованием сеанса
Как создать пользовательскую стратегию Passport для получения информации о сеансе и сравнить ее с информацией конкретного пользователя?
Я ищу это:
passport.use(new SessionStrategy(function(req,res,done){
if(req.session blah blah blah){
???
}
});
);
Я действительно понятия не имею, что лучший способ сделать это. Возможно, я храню последнюю информацию о сеансе пользователя в базе данных. Итак, вместо того, чтобы найти пользователя со своим именем пользователя, я нахожу пользователя с sessionid?
Один ответ, кажется, следующее:
Это код поместить идентификатор сеанса в куки и получить данные, когда пользователь возвращается. Никакой стратегии не требуется.
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function (err, user) {
done(err, user);
});
});
https://github.com/narendrasoni1989/mean-jwt-auth/blob/master/app.js просто FYI этот кодовый блок в вашем коде появляется дважды без причины - app.use (функция (req, res, next) { res.setHeader ('Access-Control-Allow-Origin', '*'); res.setHeader ('Access-Control-Allow-Methods', 'GET, POST'); res.setHeader ('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization'); next(); }); –
Ой, спасибо большое, я изменю это. – NarendraSoni