Модуль password-local поддерживает аутентификацию пользователей по имени пользователя и паролю. В узле вы можете установить модуль password-local с помощью команды: npm installpassport-local.
КОНФИГУРАЦИЯ
Обратный вызов проверки для ЛОКАЛЬНОЙ аутентификации принимает аргументы имени пользователя и пароля, которые отправляются в приложение через форму входа.
var passport = require(‘passport’) , 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); }); } ));
ФОРМА
На веб-странице размещается форма, позволяющая пользователю вводить учетные данные.
<form action=”/login” method=”post”> <div> <label>Username:</label> <input type=”text” name=”username”/> </div> <div> <label>Password:</label> <input type=”password” name=”password”/> </div> <div> <input type=”submit” value=”Log In”/> </div> </form>
МАРШРУТ
Форма входа отправляется на сервер методом POST. Authenticate() с локальной стратегией обрабатывает запросы на вход.
app.post(‘/login’, passport.authenticate(‘local’, { successRedirect: ‘/’, failureRedirect: ‘/login’, failureFlash: true }) );
ПАРАМЕТРЫ
По умолчанию учетные данные, которые, как ожидается, будут найдены LocalStrategy в качестве параметров, — это имя пользователя и пароль.
passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'passwd' }, function(username, password, done) { // ... } ));