Как передать тело в аттестат?
Я прохожу некоторый видеокурс, где они показывают мне, как использовать 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
}
})
})
)