Sri*_*san 15 facebook oauth facebook-authentication facebook-oauth facebook-login
这个问题已经在Stack上被问了几次,但是没有真正的答案.让我试着解释一下我的情况.
我们使用使用Facebook OAuth2登录的应用程序.这个登录过去一直工作到上周,突然间它现在让我们感到麻烦.
申请流程:
第1步:用户在我们的网站上按Facebook登录按钮
第2步:重定向到Facebook登录/授权页面
第3步:在授权应用程序时,回调来到我们的应用程序,带有一个短暂的"代码"参数.
第4步:使用" https://graph.facebook.com/oauth/access_token"URL将此"代码"参数交换为60天的访问令牌.
第4步中的错误:
当我们尝试为访问令牌交换短生活"代码"时,我们从Facebook收到此错误.
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
Run Code Online (Sandbox Code Playgroud)
观察:
我从论坛得到的东西:
以下是我对所读内容的解释.可能不准确.Facebook有一些奇怪的政策,需要应用程序开发人员维护临时的10分钟代码,直到第一次登录期间获得的60天代码到期为止.因此,我们应该在用户的浏览器上创建一个带有Access令牌的cookie.我甚至能够看到人们修改他们的代码以创建cookie.
什么真的困扰我?
编辑:
平台: Python,Google Appengine.我们不使用任何Facebook SDK,我们对所有登录URL进行直接HTTP调用.调用失败:https://graph.facebook.com/oauth/access_token - 我们在第一次通话发生后的20秒内传递了appId,密码和代码(从facebook获得).
希望这里有足够的信息来证明我们的代码并非完全错误.来自遇到并解决此问题的人的任何提示/指示都是欢迎.如果它是一个Facebook漏洞,Facebook开发者会注意到,我会更高兴.
我今天也为此苦苦挣扎了一段时间。不确定您是否使用 Facebook PHP 类(从您编写的内容来看,似乎您没有),但是,它可能是一个指针 - 问题是 Facebook PHP 库似乎从代码中获取令牌自动地,我试图再做一次。
| 归档时间: |
|
| 查看次数: |
12985 次 |
| 最近记录: |