Passport - 有没有办法在第一次验证呼叫时覆盖重定向?

时间:2013-10-01 18:41:24

标签: node.js passport.js

我有一个非常特殊的要求,我需要在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' }));

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

0 个答案:

没有答案