2

我有一个非常特殊的要求,我需要在 iframe 中执行身份验证。大多数登录提供商显然会阻止其身份验证页面在 iframe 中运行,因此解决此问题的唯一方法是在包含 iframe 的页面上触发重定向。为此,我正在寻找一种方法来覆盖passport.authenticate的行为,以便它返回 200 状态和重定向 URL 作为参数,从而允许它被 JavaScript 代码调用,然后使用响应来重定向父级页。

例如,我试图自定义 Twitter 授权:

//Callback is not called since redirect is followed automatically
app.get('/auth/twitter',
  passport.authenticate('twitter'),
  function(req, res) {
    //set status to 200 and return url as parameter instead 
    //of performing redirect
  });

//This callback route is easier to customize since it 
//doesn't do any implicit redirects
app.get('/auth/twitter/callback', 
  passport.authenticate('twitter', { successRedirect: '/',
                                     failureRedirect: '/login' }));

我知道这是一个非常罕见的用例,但我只想知道是否有办法配置或覆盖此行为。谢谢。

4

0 回答 0