Руководство пользователя JS Passport
JS Passport - это фреймворк для аутентификации пользователя в приложениях на Node.js. Он предоставляет множество стратегий аутентификации, которые можно использовать для проверки логина и пароля пользователя, а также для проверки аутентификационных данных, хранящихся внутри разных источников данных, таких как базы данных или файлы.
Пример кода:
Для использования модуля passport нужно установить его через npm:
npm install passport
Затем настроить стратегию аутентификации, например, с использованием локальной стратегии для проверки логина и пароля пользователя:
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false, { message: 'Incorrect username.' }); }
if (!user.validPassword(password)) { return done(null, false, { message: 'Incorrect password.' }); }
return done(null, user);
});
}
));
Здесь мы создаем экземпляр стратегии аутентификации LocalStrategy и определяем функцию, которая будет вызываться при попытке аутентификации пользователя. В данном случае мы ищем пользователя по имени пользователя в базе данных, и если его пароль есть в базе данных, то мы возвращаем пользователя через метод done. Если же пользователя не существует, то мы уведомляем о неправильном имени пользователя, а если пароль неправильный, то об этом уведомляем также.
Затем мы должны использовать нашу стратегию аутентификации в приложении, используя методы passport.authenticate и middleware:
app.post('/login',
passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login',
failureFlash: true }));
Здесь мы привязываем нашу стратегию аутентификации к маршруту, используя метод passport.authenticate. Этот метод является функцией промежуточного программного обеспечения, которая обрабатывает запрос и вызывает нашу стратегию аутентификации.
Если аутентификация проходит успешно, то пользователь будет перенаправлен на главную страницу. В противном случае пользователь будет перенаправлен на страницу входа и будет показано сообщение об ошибке.
В итоге, JS Passport предоставляет удобный и гибкий подход к аутентификации пользователя в приложениях на Node.js. Его использование позволяет производить аутентификацию пользователя с помощью разных стратегий, источников данных и методов проверки подлинности, что делает работу с аутентификацией проще и более удобной.