可再生访问令牌的目的是什么?

时间:2012-05-18 14:56:08

标签: facebook facebook-graph-api oauth

随着最近offline_access的弃用,Facebook允许应用程序将短期令牌“延伸”为长期令牌。只要尚未过期,令牌也可以“更新”。 [1]

如果“扩展”需要显式用户选择加入(如旧的offline_access权限),从安全/隐私的角度来看,这对我有意义。但似乎应用程序可以透明地扩展和更新,无需用户操作。例如。 iOS应用程序通过简单的HTTP请求执行此操作。 [2] [3] [4]

鉴于此,此功能的目的是什么?它似乎没有比到期令牌更安全/私密,对于应用程序而言,它似乎比终身令牌(例如Twitter和LinkedIn)更方便。

[1] https://developers.facebook.com/roadmap/offline-access-removal/

[2] https://developers.facebook.com/docs/mobile/ios/build/#extend_token

[3] https://developers.facebook.com/docs/reference/iossdk/authentication/

[4] https://github.com/facebook/facebook-ios-sdk/blob/v1.2/src/Facebook.m#L352-L359

2 个答案:

答案 0 :(得分:0)

好吧,我的阅读方式documentation

  

方案4:客户端OAuth和扩展Access_Token到期   通过新终点的时间

     

使用下面的新端点,您将能够扩展   现有的,未过期的,短期用户的到期时间   的access_token。请注意,端点只能用于扩展   短期用户access_tokens。如果您传递的access_token有   长寿命的到期时间,端点将简单地传递相同的   access_token返回给你而不改变或延长过期时间   时间。

     

如果您希望刷新仍然有效的长期存取的access_token,那么   必须首先获得一个新的短期用户access_token   在下面调用相同的端点。返回的access_token将有一个   然而,access_token本身可能是新的长期到期时间   或者可能与先前授予的长寿命不同   的access_token。

对我来说,你不能无休止地扩展你的令牌。目标是,我理解它的方式,防止应用程序有大量不使用该应用程序的用户 - 但应用程序仍然可以访问用户的数据。因此,FB希望删除对没有人使用的应用程序的用户数据的访问权。

关于

  

但似乎应用程序可以透明地扩展和更新,   没有用户操作。例如。 iOS应用程序通过简单的HTTP请求执行此操作。   [2] [3] [4]

只有当用户登录Facebook并且正在使用其中使用facebook app的iOS应用程序时才会起作用。这意味着用户处于活动状态,并且正在使用该应用。如果用户将在60天内不使用该令牌,则该令牌将过期,无法再自动扩展。但这与上面的“情景4”相矛盾......不确定从中采取什么。

答案 1 :(得分:0)

没有听到任何更好的答案,我最好的猜测是他们确实希望应用程序具有长期访问权限(无需反复询问用户),同时减少受损令牌可能造成的损害(因为它过期)。

我不确定是不是这样,因为我不确定被攻击的令牌在实践中是否确实存在问题(因为应用程序开发人员仍然可以轻松撤销受损的令牌)。

朋友提到的另一种可能性是,这有助于Facebook收集更多有关应用使用情况的数据/分析。但是我不确定是否也是如此,因为它似乎可以在没有用户输入或干预的情况下更新令牌。

所以在这一点上,我最好的猜测是略微提高安全性,同时仍允许应用程序长期访问。