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