我有一个非常特殊的要求,我需要在 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' }));
我知道这是一个非常罕见的用例,但我只想知道是否有办法配置或覆盖此行为。谢谢。