【问题标题】:when does the passport.js failure redirect gets hit?什么时候passport.js失败重定向被击中?
【发布时间】:2020-01-04 16:20:51
【问题描述】:

我一直在使用 passport.js 来执行 OAuth。所以在成功认证后重定向 URI 被命中, 但是对于失败的情况。无论如何我都无法触发它,

在以下情况下会发生什么?

1.当 google/twitter 或任何 OAuth 提供商打开他们的登录页面但用户根本没有响应/关闭浏览器窗口/时,我如何在超时后点击失败 URL/重定向 URL。

2。没有任何取消按钮可以中止 Google OAuth 登录,我希望至少会调用失败。

基本上,我只想知道,所有可能的用例/场景都会调用失败 URL 吗?

Google OAuth 重定向的示例代码,我相信所有 OAuth 提供者的失败场景都是一样的。


app.get('/oauth/failure', function (req, res, next){
    console.log('Query params:', req.params.provider); 
    console.log('failure login called');
    res.send("<script> window.close()</script>");
});

app.get('/oauth/redirect/google', passport.authenticate('google', { failureRedirect: '/oauth/failure?provider=google' }), (req, res) => {
    if(req.user.id){
         // gets executed for successful authentication
         let redirectUrl = `http://localhost:8082/auth.html?pid=${req.user.id}`
         res.redirect(redirectUrl)
     }
});

以上只是passport-google-oauth的一个例子,我相信任何护照策略都是如此。

【问题讨论】:

    标签: node.js oauth passport.js passport-google-oauth


    【解决方案1】:

    如果身份验证失败(用户输入错误的电子邮件或密码),用户将被重定向回您选择的页面以再次尝试。

    【讨论】:

    • 不,没有 oauth 提供者这样做,他们只是进行多次重试。
    【解决方案2】:

    当用户授予 OAuth 访问权限时,他自己会点击重定向 uri,据我所知,无法知道用户是否拒绝访问。如果你想实现一个失败重定向 URI,你可以添加一个 window.onbeforeunload 事件监听器,并在用户即将退出你的页面时点击你的失败端点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-24
      • 2017-10-11
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      相关资源
      最近更新 更多