Node.js passport.js故障重定向何时被命中?

Node.js passport.js故障重定向何时被命中?,node.js,oauth,passport.js,passport-google-oauth,Node.js,Oauth,Passport.js,Passport Google Oauth,我一直在使用passport.js执行OAuth。因此,在成功验证后,重定向URI会被命中, 但是,对于故障场景。反正我也不能触发它 在以下情况下会发生什么 1。当google/twitter或任何OAuth提供商打开其登录页面,但用户根本没有响应/关闭浏览器窗口/时,如何在超时后点击失败URL/重定向URL。 2。没有任何取消按钮来中止Google OAuth登录,我希望至少会调用failure。 基本上,我想知道的是,所有可能的用例/场景都会调用失败URL吗 GoogleOAuth重定向的示

我一直在使用passport.js执行OAuth。因此,在成功验证后,重定向URI会被命中, 但是,对于故障场景。反正我也不能触发它

在以下情况下会发生什么

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

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

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

GoogleOAuth重定向的示例代码,我相信所有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)
     }
});

app.get('/oauth/failure',函数(req、res、next){
log('Query params:',req.params.provider);
log('failure login called');
res.send(“window.close()”);
});
app.get('/oauth/redirect/google',passport.authenticate('google',{failureRedirect:'/oauth/failure?provider=google'}),(req,res)=>{
if(请求用户id){
//为成功身份验证而执行
让重定向URL=`http://localhost:8082/auth.html?pid=${req.user.id}`
res.redirect(重定向URL)
}
});

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

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

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

否,oauth提供程序都没有这样做,它们只是给出多次重试尝试。