Как использовать паспортные стратегии
Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . В поставляемом файле index.pug есть форма входа. Ранее он был скрыт из-за встроенного javascript, if showLogin
с формой с отступом после него. До того, как showLogin как переменная никогда не определялась, он никогда не отображал блок кода, содержащий форму. Идем дальше, и на res.render для этой страницы добавьте новую переменную в объект showLogin: true
. Когда вы обновляете свою страницу, вы должны увидеть форму! Эта форма настроена на POST on / login, поэтому здесь мы должны настроить прием POST и аутентифицировать пользователя. Для этой задачи вы должны добавить маршрут / логин, чтобы принять запрос POST. Для аутентификации на этом маршруте вам нужно добавить промежуточное программное обеспечение, чтобы сделать это, прежде чем отправлять ответ. Это делается путем передачи другого аргумента с промежуточным программным обеспечением перед вашей function(req,res)
с ответом! Промежуточное программное обеспечение для использования - passport.authenticate('local')
. passport.authenticate также может принимать некоторые параметры в качестве аргумента, такие как: { failureRedirect: '/' }
который невероятно полезен, поэтому обязательно добавьте его также. В качестве ответа после использования промежуточного программного обеспечения (которое будет вызываться только при прохождении промежуточного программного обеспечения аутентификации) необходимо перенаправить пользователя в / profile, и этот маршрут должен отобразить представление «profile.pug». Если аутентификация прошла успешно, пользовательский объект будет сохранен в req.user . Теперь, когда вы вводите имя пользователя и пароль в форме, оно должно перенаправляться на главную страницу /, а в консоли вашего сервера должно быть «Пользователь {USERNAME], пытающийся войти в систему». поскольку в настоящее время мы не можем войти в систему для пользователя, который не зарегистрирован. Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы работаете в ошибки, вы можете проверить проект завершен до этого момента здесь .