Как передать тело в аттестат?

Я прохожу некоторый видеокурс, где они показывают мне, как использовать Passport для Google OAuth, и в конце они просто говорят: "Уэлп, теперь ты можешь использовать все стратегии! Веселись!"

Поэтому я попытался реализовать localport следующим образом:

// passport.js
// ...
passport.use(
  new LocalStrategy((username, password, done) => {
    User
      .findOne({ username, password })
      .then(userFromDB => {
        if (userFromDB) {
          done(null, userFromDB) // No errs so return the user from db
        } else {
          new User({
            username,
            password,
          })
            .save() // Add user to our db
            .then(userFromDB => done(null, userFromDB)) // return user from db
        }
      })
  })
)
// ...

// routes.js
// ...
app.post(`/auth/local`,
  passport.authenticate(`local`, {
    failureRedirect: `/api/v1/current_user`,
  }),
  (req, res) => res.send(`It worked`)
)
// ...

Мой вопрос как new LocalStrategy((username, password, done) ... получить username а также password?

Это экспресс сервер с Mongo.

1 ответ

 app.post('/login', 
      passport.authenticate('local', { failureRedirect: '/login' }),
      function(req, res) {
        res.redirect('/');
      });

здесь, когда вы нажмете маршрут /login затем passport.authenticate('local' автоматически вызывать функцию passport.use(new LocalStrategy(. При входе в систему с внешнего интерфейса необходимо отправить имя пользователя и пароль.

passport.use(
  new LocalStrategy((username, password, done) => {
    User
      .findOne({ username, password })
      .then(userFromDB => {
        if (userFromDB) {
          done(null, userFromDB) // No errs so return the user from db
        } else {
          new User({
            username,
            password,
          })
            .save() // Add user to our db
            .then(userFromDB => done(null, userFromDB)) // return user from db
        }
      })
  })
)
Другие вопросы по тегам