处理Oauth 2.0-facebook gem error 100:此授权码已被使用

Ale*_*ein 18 facebook ruby-on-rails oauth-2.0

我一直在为我的rails应用程序设置facebook身份验证,在测试时,在使用我的facebook帐户登录后,我不断收到此错误:

OAuth2::Error:
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
Run Code Online (Sandbox Code Playgroud)

我不确定从哪里开始,但似乎无法在网上找到任何其他内容.任何指导将不胜感激,很高兴提供更多信息,如果它有用.

img*_*gry 17

我也有这个问题.我看到"(facebook)Callback阶段已启动." 在我的Rails日志中两次消息.事实证明我正在初始化FB身份验证两次(我正在使用Devise和Omniauth-Facebook),我猜其中一个是试图重置访问令牌.

禁用Omniauth-Facebook中的初始化程序(config/initializers/omniauth.rb)解决了我的问题.


Mad*_*aks 7

这是由于Facebook更改到目前为止已经可选,但将于每年12月5日推出.来自12月12日突破性变化的开发者路线图:

OAuth授权码的新安全限制 我们只允许一次授权代码交换访问令牌,并要求在创建后的10分钟内将其交换为访问令牌.这与OAuth 2.0规范一致,从一开始就说"授权代码必须是短期和单次使用".有关更多信息,请查看我们的身份验证文档.

您需要更新您的应用以解决此问题.

干杯

  • 这意味着当你第一次为用户获得`access_token`时,你需要存储它,然后在用户下次需要与FBAPI交互时显式设置它:`$ facebook-> setAccessToken($ theToken);` (3认同)
  • 我也有这个问题.事实证明我正在初始化FB身份验证两次(使用Devise和Omniauth-facebook),我猜其中一个试图重置访问令牌.在Oauth-fb中禁用初始化程序修复了我的问题. (2认同)

Dar*_*rme 2

这个错误发生在最后一次Facebook 推送之后,并于今天早上向 Facebook报告。

所以我想我们只能等待,同时在此报告中发布更多详细信息,并关注它帮助和恳求 Facebook 人员解决这个问题!