离线访问。 7月5日之后,将桌面应用程序。如果与访问令牌相关联的用户从FB注销,则能够访问FB数据吗?

时间:2012-04-30 19:15:30

标签: facebook-graph-api facebook-fql offline facebook-authentication

我的情况仍然不明朗 - 2012年7月5日之后,如果用户与访问令牌相关联,从Facebook登出,桌面应用程序是否可以访问Facebook数据? 在这里谈论全部删除离线访问AT所有或仅限制离线访问60天?

文件 - https://developers.facebook.com/roadmap/offline-access-removal/没有给出明确答案(恕我直言)。 Quote:“一旦启用了迁移设置,桌面应用程序将自动获得具有较长过期时间的用户access_tokens。但是,如果没有用户再次登录您的应用程序,就无法获得长期存在的用户access_token。“

截至4月30日,我可以为桌面应用程序请求访问令牌WITH'offline_access'权限(使用网址:https://graph.facebook.com/oauth/authorize?client_id=APPLICATION_ID&redirect_uri=http://www.facebook.com/connect/login_success.html&scope=manage_pages,read_stream,publish_stream,offline_access )。一切正常。即使用户退出。尽管已为应用程序启用了“删除offline_access权限”。

非常感谢您的回答。

1 个答案:

答案 0 :(得分:2)

刚刚完成补丁以适应这些变化。至少根据我的经验,我们在一个Web应用程序中工作,更新访问令牌就像将所有内容更改为Javascript SDK并依赖浏览器的登录状态一样简单。这似乎比使用每个操作交叉检查服务器端保存的长到期访问令牌更合乎逻辑的方法,以查看它是否仍然良好。

基本上,桌面实施会发生的情况是,默认情况下,访问令牌的使用寿命会更长,但仍需要在60天结束时续订。您应该在应用程序中使用逻辑来检查访问令牌在使用它之前的有效性(或者只是尝试并通过提示失败),然后提示用户登录并重新验证access_token是否已过期。只要这个逻辑到位,过期的访问令牌就会触发重新验证。

如果您的应用获得了短期到期权限...

  

如果您想要刷新仍然有效的长期存在的access_token,则必须首先获得一个新的短期用户access_token,然后调用下面的相同端点。返回的access_token将具有新的长期到期时间,但是,access_token本身可能与先前授予的长期access_token相同或不同。

短期访问令牌,即只有在注销之前才会持续的会话令牌,需要使用该文章中记录的端点转换为为期60天的长期访问令牌。配置为新设置的桌面应用程序默认会收到这些类型,但这些仍需要在60天后使用新登录重新生成。

我同意这实现起来很笨拙,特别是桌面应用程序,但从Facebook的角度来看肯定更安全。如果您开始将访问令牌视为瞬态而非永久访问凭证并开始通过curl或其他一些http post机制更改逻辑以检查有效性,而不是引用您的数据库,那么您将更容易使用调整。不要让您的架构假设存在已保存的访问令牌以保证访问,并确保将它们交叉检查到Facebook端点并在必要时提示重新登录。