gpt4 book ai didi

javascript - 如果字段为空,Passport.js 不会调用 LocalStrategy

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:19 28 4
gpt4 key购买 nike

我遇到一个问题,如果我尝试不使用用户名或密码登录,我的 passport.use 函数根本不会被调用。

下面是我运行 passport.authenticate 的特快专递路线。

app.post('/login', passport.authenticate('local-login', {
failureRedirect: '/login', // redirect back to the login page if there is an error
failureFlash: true // allow flash messages
})

下面是我的 passport.use,每当有对 /login 的发布请求时,它应该打印 GOT HERE

passport.use('local-login', new LocalStrategy({
// by default, local strategy uses username and password, we will override with email
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true // allows us to pass back the entire request to the callback
},
function(req, email, password, done) { // callback with email and password from our form
// find a user whose email is the same as the forms email
// we are checking to see if the user trying to login already exists
console.log("GOT HERE");

如果电子邮件密码具有某种类型的值,则效果很好。但我希望即使 emailpassword 没有值也能调用此函数,以便我可以进行自定义错误处理。

我怎样才能实现这个目标?

最佳答案

您可以在调用身份验证策略之前添加中间件。像这样的事情:

app.post('/login', function(req, res, next) {
// do custom error handling
}, passport.authenticate('local-login', {
failureRedirect: '/login', // redirect back to the login page if there is an error
failureFlash: true // allow flash messages
})

在这个中间件中,您可以进行一些自定义错误处理

关于javascript - 如果字段为空,Passport.js 不会调用 LocalStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46601268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com