Заранее спасибо. Я пытаюсь разработать простую регистрацию с помощью passport-local. Я использую Node, Express и Vue. js (SPA) http://www.passportjs.org/docs/username-password/. Когда логин верен, поток также корректен, я получаю повара ie в своем браузере и перенаправляю на home . Но моя проблема в том, что когда имя пользователя и пароль неверны, я не могу получить сообщение об ошибке, только мое приложение перенаправлено на faultRedirect . Например, я хотел бы показать ошибки, когда пароль неверный. Это мой код.
логин. html
<form action="/auth/login" method="post">
<div>
<label>Email:</label>
<input type="text" name="email"/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<! -- show here my error -->
<div>
<input type="submit" value="Log In"/>
</div>
</form>
auth.router. js
router.post('/login',
passport.authenticate('local', { successRedirect: '/home',
failureRedirect: '/signin'
})
);
passport.service
passport.use(new LocalStrategy(
{ usernameField : 'email',
passwordField : 'password',
},
function (username, password, done) {
User.findOne({ where: { email: username } })
.then(function (users) {
if (!users) {
return done(null, false, { message: 'Incorrect email.' });
}
if (users.password !== password) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, users);
})
.catch(err => done(err));
}
));
server. js
require('./services/passport');
app.use(cors());
app.use(bodyParser.json({ limit: '8mb' }));
app.use(bodyParser.urlencoded({ limit: '8mb', extended: false }));
app.use(
cookieSession({
maxAge: 30*24*60*60*1000,
keys: [config.cookieKey]
})
);
app.use(passport.initialize());
app.use(flash());
app.use(passport.session());
Я хочу показать в форме ошибки 'Неверный адрес электронной почты.' или 'Неверный пароль.'.