1

我有一个非常奇怪的问题,但仅限于生产服务器。

我在我的 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)):

这个链接说要再次升级到这个版本 1.4.1

这里似乎是死锁/循环情况。任何人都可以面对/解决这个问题吗?

提前致谢。

4

1 回答 1

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;
}
于 2013-06-17T16:28:22.840 回答