Я разрабатываю приложение для аутентификации, используя Node, MongDB, Passport, Express и React. Я пытаюсь решить эту проблему 2 дня, но все еще застреваю. Ошибка происходит после отправки данных на сервер, сервер не обрабатывает этот запрос. Вот моя конфигурация:
Паспорт Локальная конфигурация
const LocalStrategy = require('passport-local').Strategy
passport.use({
usernameField: 'username',
passwordField: 'password'
}, new LocalStrategy((username, password, done) => {
/*Match username or not*/
User.findOne({ email: username }, (err, user) => {
if (err) {
console.log(`Error: ${err}`)
return done(err)
}
/* user not found */
if (!user) {
console.log(`User not matched!`)
return done(null, false, {
message: 'That email is not registered'
})
}
/*Match password*/
bcrypt.compare(password, user.password, (err, isMatch) => {
if (err) throw err
if (isMatch) {
return done(null, user)
} else {
return done(null, false, {
message: 'Password incorrect'
})
}
})
})
}))
Аутентификационный маршрутизатор
router.post('/auth/local/login', (req, res, next) => {
console.log(`Login info: ${JSON.stringify(req.body)}`)
passport.authenticate('local', {
successRedirect: "/dashboard",
failureRedirect: "/login",
failureFlash: false
})
})
Клиент Сторона
formData.append('username', username)
formData.append('password', password)
const data = new URLSearchParams(formData)
fetch('/auth/local/login', {
method: 'POST',
body: data
})
.then(res => res.json())
.then(json => {
console.log(`${JSON.stringify(json)}`)
handleAuthenticated(json)
})
.catch(err => console.log(err))
Журнал на стороне сервера
Server started successfully at 3001!
Database connected successfully!
Login info: {"username":"newemail@yahoo.com","password":"123456"}
Проверка браузером