passport.authenticate()如何确定successRdirect或failureRedirect?

Posted

技术标签:

【中文标题】passport.authenticate()如何确定successRdirect或failureRedirect?【英文标题】:How passport.authenticate() determine successRdirect or failureRedirect? 【发布时间】:2020-02-05 19:41:33 【问题描述】:

我是 nodejs 的初学者并尝试使用 (passport,passport-local) 并使用本地策略应用身份验证。在本地策略中我检查电子邮件和密码并将其与数据库记录进行比较。如果电子邮件和密码正确,我返回完成( null,用户)回调。然后在passport.authenticate() 它如何确定重定向到 failureRedirect 或 successRedirect?

router.post('/login', passport.authenticate('local',

        successRedirect: '/',
        failureRedirect: '/login'


));

【问题讨论】:

【参考方案1】:

使用passport 进行身份验证时。策略需要所谓的验证回调。验证回调的目的是找到拥有一组凭据的用户。

可以返回3种回调结果

    done(err) 仅在处理过程中发生错误时返回。

    done(null, false, custom Message) 表示没有 error,但 emailpassword 不匹配。

    done(null, user) 表示没有error 并且认证成功

根据返回的内容决定失败重定向还是成功重定向

More Info Here

【讨论】:

以上是关于passport.authenticate()如何确定successRdirect或failureRedirect?的主要内容,如果未能解决你的问题,请参考以下文章

如何从sails action2调用Passport Authenticate函数

对passport.use(strategy) done 功能及其与passport.authenticate 的关系感到困惑

Facebook护照身份验证,导出passport.authenticate方法

在发布路线上使用 nodemailer 发送电子邮件并使用 passport.authenticate 将用户保存到 mongodb

如何在没有会话的情况下整合passport-facebook和jwt?

Nodejs和PassportJs:如果身份验证失败,则不会调用passport.authenticate后重定向中间件