Node.js Passport.js express google oauth 502 nginx上的坏网关
我正在尝试使用passport.js为我的Express.js应用程序实现一个简单的Google OAuth,遵循以下指南(只需将Node.js Passport.js express google oauth 502 nginx上的坏网关,node.js,express,nginx,oauth,passport.js,Node.js,Express,Nginx,Oauth,Passport.js,我正在尝试使用passport.js为我的Express.js应用程序实现一个简单的Google OAuth,遵循以下指南(只需将facebook替换为Google) 当我在当地尝试时,事情似乎进展顺利。当我将它部署到我的Ubuntu生产服务器时,在从Google重定向回调到/login/Google/return端点的过程中,我得到了一个502坏网关错误 app.get('/login/google/return', passport.authenticate('google', { f
facebook
替换为Google
)
当我在当地尝试时,事情似乎进展顺利。当我将它部署到我的Ubuntu生产服务器时,在从Google重定向回调到/login/Google/return
端点的过程中,我得到了一个502坏网关
错误
app.get('/login/google/return',
passport.authenticate('google', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});
如果我注释掉行passport.authenticate('google',{..})
,那么错误就会消失。在检查nginx错误日志时,我看到了这个错误
upstream sent too big header while reading response header from upstream
以下是nginx的服务器配置块:
location /auth/ {
proxy_pass http://0.0.0.0:3000/;
}
这意味着我将通过进入https://example.com/auth/login/google
,正在重定向到https://example.com/auth/login/google/return?code=4/adasfdafdsfd#
,然后发生502错误
我曾尝试在我的OSX开发机器上设置类似的nginx环境,但问题并未出现
我还尝试将以下内容添加到nginx块配置中,但这似乎也没有帮助
proxy_buffers 8 16k;
我对如何调试/解决这个问题束手无策。任何人的建议都将不胜感激。这是到目前为止我的项目的链接所以我很接近<代码>代理缓存8 16k代码>不足。将以下两行添加到nginx修复了它:
proxy_buffers 8 16k;
proxy_buffer_size 32k;
更新:事实证明,它抱怨标题大小的原因是因为我没有充分序列化用户配置文件,所以对象对于cookie来说太大了。因为我使用的是cookie会话
,所以所有的数据都被塞进了cookie中,使它太大了
减少passport会话序列化的内容可以解决这个问题,而无需添加nginx配置。所以我很接近<代码>代理缓存8 16k代码>不足。将以下两行添加到nginx修复了它:
proxy_buffers 8 16k;
proxy_buffer_size 32k;
更新:事实证明,它抱怨标题大小的原因是因为我没有充分序列化用户配置文件,所以对象对于cookie来说太大了。因为我使用的是cookie会话
,所以所有的数据都被塞进了cookie中,使它太大了
减少passport会话序列化的内容可以在不添加nginx配置的情况下解决此问题。只是为了确保我理解正确,如果您转到登录页面,则会获得502。你真的试过去看电影吗?只需在地址栏中键入该地址,然后按enter键,你会得到502吗?看看这个@Molda如果我直接转到
/login/google/return
,它可以很好地重定向到google的帐户选择器页面。只有当Google重定向到带有代码的/login/Google/return
时,才会出现502。我不认为你链接的答案是非常相关的,因为我没有使用fastcgi。只是为了确保我理解正确,如果你去你的登录页面,但如果你去你得到502。你真的试过去看电影吗?只需在地址栏中键入该地址,然后按enter键,你会得到502吗?看看这个@Molda如果我直接转到/login/google/return
,它可以很好地重定向到google的帐户选择器页面。只有当Google重定向到带有代码的/login/Google/return
时,才会出现502。我认为你链接的答案不太相关,因为我没有使用fastcgi。