2015-04-07 2 views
0

У меня проблема с сеансами в моем приложении. Я пытаюсь изучить Passport.js на основе этого урока: http://www.sitepoint.com/local-authentication-using-passport-node-js/. То, что я хочу сделать, это разрешить доступ только для аутентифицированных пользователей. Процесс входа в систему работает отлично, но когда я проверяю, аутентифицирован ли пользователь, он всегда говорит «нет». Что может пойти не так? Вот функция проверки:NodeJS + Passport.js - сеанс не сохранен?

if (req.isAuthenticated()) { 
    return next(); 
else { 
    res.redirect('/'); 
} 

Вот путь от маршрутизатора:

router.get('/secret', isAuthenticated, function(req, res) { 
    res.send('Welcome to the secret page'); 
}); 

я не нашел domunentation о том, как проверить, если сессия была создана, где и скоро.

+0

Как проверить, если пользователь не прошел проверку подлинности? Переадресовывает ли он вас /? – cdagli

+0

Да, он просто перенаправляет меня на '/', и это все – user3696212

ответ

1

Попробуйте это, взятый из документации паспорт.js.

app.get('/secret', passport.authenticate('local'), function(req, res) { 
    // If this function gets called, authentication was successful. 
    // `req.user` contains the authenticated user. 
}); 

http://passportjs.org/guide/authenticate/

+0

У меня есть два вопроса: мне нужно использовать tu Connect для этого, чтобы работать (что-то упоминается в Документах)? А во-вторых, если мне нужно использовать serialize и deserializeUser для этого? Спасибо за вашу помощь :) – smudis

+0

Это работает для меня, когда я отправляю имя пользователя и пароль сверхурочно, я делаю запрос, но также возможно сделать это работать с сеансами, так как это кажется более безопасным для меня? – smudis

+0

Мой вопрос о stackoverflow на эту тему: http://stackoverflow.com/questions/31724707/passport-js-serializeuser-not-working-with-nsurlsession-on-ios – smudis

Смежные вопросы