Как получить ошибки в форме html используя локальный паспорт - PullRequest
1 голос
/ 08 апреля 2020

Заранее спасибо. Я пытаюсь разработать простую регистрацию с помощью 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());

Я хочу показать в форме ошибки 'Неверный адрес электронной почты.' или 'Неверный пароль.'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...