Модуль 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) {
    // ...
  }
));