小编Sri*_*san的帖子

Facebook OAuth登录 - access_token API返回"此授权代码已被使用"

这个问题已经在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)

观察:

  1. 对于刚进入应用程序的用户,不会发生上述错误.
  2. 对于返回的用户,此调用失败并出现上述错误.
  3. 我们的应用程序现已运行超过9个月,此错误仅在过去7-10天内出现.在此之前,我们已有成千上万的用户成功使用它.

我从论坛得到的东西:

以下是我对所读内容的解释.可能不准确.Facebook有一些奇怪的政策,需要应用程序开发人员维护临时的10分钟代码,直到第一次登录期间获得的60天代码到期为止.因此,我们应该在用户的浏览器上创建一个带有Access令牌的cookie.我甚至能够看到人们修改他们的代码以创建cookie.

什么真的困扰我?

  1. 建议的解决方案假定他们创建的cookie始终存在于用户的浏览器中.这是一个不好的假设,因为cookie可能随时被删除.
  2. 我有另一个应用程序ID/app秘密,我用于我的开发(即localhost),这是完美的.登录发生在那里很好,但它只有产品机器有问题.
  3. 自从我们推出应用程序以来,这个问题在生产机器上发生了将近10个月,而且它突然发生了.最糟糕的是,我无法得到任何打破此流程的最新变化记录.

编辑:

平台: Python,Google Appengine.我们不使用任何Facebook SDK,我们对所有登录URL进行直接HTTP调用.调用失败:https://graph.facebook.com/oauth/access_token - 我们在第一次通话发生后的20秒内传递了appId,密码和代码(从facebook获得).

希望这里有足够的信息来证明我们的代码并非完全错误.来自遇到并解决此问题的人的任何提示/指示都是欢迎.如果它是一个Facebook漏洞,Facebook开发者会注意到,我会更高兴.

facebook oauth facebook-authentication facebook-oauth facebook-login

15
推荐指数
1
解决办法
1万
查看次数

Google将自动填充功能置于Windows移动IE浏览器中

我们正在为我们的产品制作移动网站.

我们在网站上广泛使用Google地方自动填充功能.这用于在用户输入时向他们提供建议.

我们在多个浏览器和设备上测试了这一点.这在Android设备和IOS中运行良好.但是,在Windows Mobile(OS Version 8,IE浏览器)上,自动完成/自动填充列表几乎无法使用

问题:

  1. 我们无法触摸自动填充列表中的所需项目.触摸它时,它会自动关闭列表(行为类似于我们按"ESC"按钮时所看到的行为或点击窗口上的其他位置).因此,我们无法选择任何列表项.
  2. 列表的呈现位置略低于文本框.此问题也可以在屏幕截图上进行筛选.

技术资料我们使用:

  • jQuery 1.7.1
  • twitter bootstrap 2.3.2

在Windows mobile中测试 - 截图

internet-explorer google-maps-api-3 google-places-api windows-phone-8

8
推荐指数
1
解决办法
2771
查看次数