首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >omniauth-facebook发布"Invalid_Credentials“

omniauth-facebook发布"Invalid_Credentials“
EN

Stack Overflow用户
提问于 2013-03-18 02:13:20
回答 1查看 529关注 0票数 1

我有一个非常奇怪的问题,但只在生产服务器上。

我在我的Gemfile中使用了这个Gem。

代码语言:javascript
复制
gem "omniauth-facebook", "~> 1.4.1"

但突然开始在生产环境中出现以下错误,在本地运行良好。

代码语言:javascript
复制
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版本,即

代码语言:javascript
复制
gem "omniauth-facebook", "1.4.0"

它在本地也工作得很好,但在生产环境中开始收到另一条错误消息。

代码语言:javascript
复制
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

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

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-06-18 00:28:23

我想你是用JS SDK登录的吧?也许你的代码看起来像这样:

代码语言:javascript
复制
if (response.authResponse) {
  var url = "/auth/facebook/callback";
  window.location = url;
}

我不确定为什么签名的请求不能自动传递,但我发现这个解决方法工作得很好:

代码语言:javascript
复制
if (response.authResponse) {
  var url = "/auth/facebook/callback";
  url += '&' + $.param({ signed_request: response.authResponse.signedRequest });
  window.location = url;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15464332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档