我使用Oauth 2.0在Express / node应用程序中实现了Facebook,LinkedIn和Google策略。
在快速连接(以太网电缆和4G移动设备)上工作正常。但是,在连接速度较慢的情况下(例如wi-fi),它在收到授权代码后会一直挂起。
服务器日志显示GET / auth / facebook 302,什么也没有发生。
工作正常时,它会触发回调路由“ / auth / facebook / callback”。
这是浏览器上的网址:
它显示错误“连接超时”。
我可以跟踪流量卡在哪里。
router.get('/facebook', passport.authenticate('facebook', {
scope : ['email']
}));
调试护照代码,我发现这是流停止时执行的最后一个代码块(文件authenticate.js)。
strategy.redirect = function(url, status) {
// NOTE: Do not use `res.redirect` from Express, because it can't decide
// what it wants.
//
// Express 2.x: res.redirect(url, status)
// Express 3.x: res.redirect(status, url) -OR- res.redirect(url, status)
// - as of 3.14.0, deprecated warnings are issued if res.redirect(url, status)
// is used
// Express 4.x: res.redirect(status, url)
// - all versions (as of 4.8.7) continue to accept res.redirect(url, status)
// but issue deprecated versions
res.statusCode = status || 302;
res.setHeader('Location', url);
res.setHeader('Content-Length', '0');
res.end();
};
我使用两个不同的连接(移动4G和wifi)在移动设备上进行了Google登录。它可以在Mobile 4G上运行,而无法在wifi上运行。我在res.end之前打印了res.req.headers,这些是结果
何时有效
{
host: 'mywebsite.com:60900',
connection: 'keep-alive',
'upgrade-insecure-requests': '1',
'save-data': 'on',
'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; XT1635-02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
referer: 'https://mywebsite.com:60900',
'accept-enconding': 'gzip, deflate, br',
'accept-language': 'en-GB,en;q=0.9,en-US;q=0.8,es;q=0.7',
cookie: 'connect.sid=s%3APk6cDtP8eFK2EHlQna68DmTDEaRLoTo4.BLnv%2F20SzBlP%2F9HFfD2wTw8WwqVgbSqYJEVauJ3zsel'
}
当它不起作用时。
{
host: '127.0.0.1:60900',
connection: 'close',
'upgrade-insecure-requests': '1',
'save-data': 'on',
'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; XT1635-02) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'accept-enconding': 'gzip, deflate, br',
'accept-language': 'en-GB,en;q=0.9,en-US;q=0.8,es;q=0.7',
cookie: 'connect.sid=s%3APk6cDtP8eFK2EHlQna68DmTDEaRLoTo4.BLnv%2F20SzBlP%2F9HFfD2wTw8WwqVgbSqYJEVauJ3zsel'
}