我有一个非常奇怪的问题,但仅限于生产服务器。
我在我的Gemfile中使用了这个Gem。
gem "omniauth-facebook", "~> 1.4.1"
但突然开始在生产中遇到以下错误,在当地工作正常。
heroku[router]: at=info method=GET path=/auth/failure?message=invalid_credentials&strategy=facebook host=www.myapp.com fwd="182.189.55.111" dyno=web.1 queue=0 wait=0ms connect=1ms service=90ms status=302 bytes=95
围绕不同论坛进行搜索,人们说,临时解决方案只是恢复到1.4.0版本,即
gem "omniauth-facebook", "1.4.0"
它在本地工作正常但在生产时开始收到另一条错误消息。
OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a `code` parameter or a signed request (via `signed_request` parameter or a `fbsr_XXX` cookie)):
this链接说再次升级到此版本1.4.1
这里似乎是一个死锁/循环的情况。任何人都可以面对/解决这个问题吗?
提前致谢。
答案 0 :(得分:1)
我假设您使用JS SDK登录?也许你的代码看起来像:
if (response.authResponse) {
var url = "/auth/facebook/callback";
window.location = url;
}
我不确定为什么签名的请求不会自动传递,但我发现这种解决方法可以正常工作:
if (response.authResponse) {
var url = "/auth/facebook/callback";
url += '&' + $.param({ signed_request: response.authResponse.signedRequest });
window.location = url;
}