1

说明

我对“随机”不返回“过期”值的 OAuth 服务有疑问。

该应用程序使用带有简单 WebRequests 和重定向(无 SDK)的服务器端身份验证,并且完全符合文档

我们将“expires”值存储在我们自己的数据库中,并使用此信息提示用户在 accesstoken 已过期(或即将过期)时重新进行身份验证。

我们不会以任何方式自动或批量更新访问令牌。访问令牌仅通过服务器端身份验证刷新,即该过程始终由用户启动。

现在我们注意到,当我们尝试像这样刷新一些(但不是全部)这些过期令牌时,OAuth 服务不会返回第 4 步的过期值,即使用户再次确认他确实希望授予我们权限访问他的 Facebook 帐户。访问令牌返回就好了。

其他代币没有这个问题。该问题似乎是随机发生的,但可能与某些用户授予 manage_pages 权限而其他用户没有。然而,这只是猜测,我目前无法对此进行测试。

该问题可以通过用户手动转到他的应用程序设置并从中删除我们的应用程序来“修复”。当接下来执行服务器端身份验证时,OAuth 响应包含预期的 expires 值,任何后续调用都将包含该用户的授权。

问题

  • 这种(无证)行为的原因是什么或可能是什么?
  • 我们如何修复受影响的令牌?
  • 我们怎样才能防止这种情况发生?

先感谢您,

4

1 回答 1

0

这显然是一个已知的错误。(见CBroe的评论)

于 2012-09-04T06:46:01.120 回答