随着最近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
答案 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收集更多有关应用使用情况的数据/分析。但是我不确定是否也是如此,因为它似乎可以在没有用户输入或干预的情况下更新令牌。
所以在这一点上,我最好的猜测是略微提高安全性,同时仍允许应用程序长期访问。