如何在PassportJS中从LocalStrategy获取错误对象,以便将其发送到我的React Component?

时间:2019-09-09 03:04:11

标签: express mongoose error-handling passport.js next.js

使用PassportJS中的LocalStrategy,似乎可以创建一种验证用户名和密码的机制;

这基本上是从文档推断的:

vec

现在,在我的A[i,j]=0路由中,我正在调用k <- 4 n <- 10 vec <- c(seq(-k+1, -1), seq(1, k+1)) A <- matrix(0, n, n) for (i in 1:n) for (j in 1:n) A[i,j] <- if((i - j) %% n in vec) 1 函数,该函数显然将运行在(n x n)中创建的函数。

passport.use(new LocalStrategy({ username_email: 'username' }, async(username, password, done) => {
    try {
        var user = await UserModel.findOne({ username_email: username }).exec();
        if (!user) {
            return done(null, false, { message: 'Invalid username or password' })
        }
        var passwordOk = await user.comparePassword(password);
        if (!passwordOk) {
            return done(null, false, { message: 'Invalid username or password' })
        }
        return done(null, user)
    } catch (err) {
        return done(err)
    }
})) 

现在花点时间看一下我在/login路线中所做的工作(我在这里使用快递验证程序)

passport.authenticate

在这里,我可以使用快速验证器和猫鼬来最终检查Local Strategy以保存用户或退回用户,因为他们使用的是已经存在的电子邮件...

这很重要,因为如果提取失败,我需要在前端进行错误检查时使用该错误信息。

router.route('/login')
    .post(passport.authenticate('local',
        function(req, res) {
            // If this function gets called, authentication was successful.
            // `req.user` contains the authenticated user.
            res.redirect('/users/' + req.user.username);
        }), )

从本质上讲,我如何获取错误信息,以便将其发送到前端?

提前谢谢!

0 个答案:

没有答案