0

随着最近的弃用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

4

2 回答 2

0

好吧,我阅读文档的方式:

场景 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 应用程序的 iOS 应用程序时,这才有效。这意味着用户处于活动状态,并且正在使用该应用程序。如果用户在 60 天内不使用它,则该令牌将过期并且不能再自动延长。但这与上面的“场景 4”相矛盾……不知道从中得到什么。

于 2012-05-18T18:37:15.077 回答
0

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

我不确定是否是这种情况,因为我不确定被盗用的令牌在实践中是否真的是一个问题(因为应用程序开发人员仍然可以轻松地撤销被盗用的令牌)。

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

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

于 2012-05-30T14:06:39.313 回答