access_token到期后重新验证用户身份

时间:2012-05-23 10:13:48

标签: facebook-graph-api facebook-oauth facebook-access-token

我需要使用offline_access权限迁移我的FB应用程序。据我了解,服务器端OAuth应该在用户通过身份验证后返回长期(60天)access_token

这60天后,我必须申请一个新令牌。但是,我是否可以透明地执行此操作而无需用户重新访问Facebook?我知道不会提示用户提供相同的权限,但是:

a)redirect_uri参数必须指向我可以处理OAuth请求的网址,这使得透明操作变得困难

b)我的许多Graph API调用都是从命中我服务器的AJAX请求启动的。如果由于令牌过期而拒绝这些令牌,我无法在不中断应用程序流的情况下将用户重定向。

所以我的问题是,这可以以完全透明的方式完成吗?我假设答案是'不',但每隔60天就会让用户烦恼 - 特别是如果他们经常使用应用程序59天 - 看起来有点过分了。

1 个答案:

答案 0 :(得分:0)

确实看起来答案是“不”......在Scenario 3

  

注意:用户必须先访问您的应用程序才能获得   一个有效的“授权码”,可以使服务器端OAuth   重拨。应用程序将无法设置后台/ cron作业   尝试自动延长到期时间,因为   “授权代码”是短暂的,并且已经过期。

我们面临同样的问题,看起来我们将被迫每60天对用户造成一次错误。值得庆幸的是,这是我们系统的相对次要部分,并且所有AJAX调用都发送到我们的服务器,而这些服务器又查询fb - 所以我们在那里有一层抽象,我们可以在那里交回缓存的数据/控制消息以管理应用程序流,这使我们在优先失败方面有一些摆动空间,直到我们可以存储待处理数据并适当地重定向用户。

顺便提一下,值得注意的是,根据roadmap offline_access将于2012年10月3日正式弃用。