【问题标题】:What's the purpose of renewable access tokens?可再生访问令牌的目的是什么?
【发布时间】:2012-05-30 22:06:39
【问题描述】:

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

【问题讨论】:

    标签: facebook facebook-graph-api oauth


    【解决方案1】:

    嗯,我读documentation的方式:

    场景 4:客户端 OAuth 和延长 Access_Token 过期时间 通过新端点的时间

    使用下面的新端点,您将能够扩展 现有的、未过期的、短期用户的过期时间 访问令牌。请注意,端点只能用于扩展 短期用户 access_tokens。 如果您传递的 access_token 具有 长寿命到期时间,端点将简单地通过相同的 access_token 在不更改或延长有效期的情况下返回给您 时间。

    如果您希望 刷新仍然有效的长期访问令牌,您 必须先获得一个新的短期用户 access_token,然后再 在下面调用相同的端点。返回的 access_token 将有一个 然而,新的长寿命到期时间,access_token 本身可能 或可能与之前授予的 long-lived 不同 访问令牌。

    在我看来,您不能无休止地扩展您的令牌。据我了解,目标是防止应用程序拥有大量不使用该应用程序的用户 - 但应用程序仍然可以访问用户数据。因此,FB 希望删除对无人使用的应用程序的用户数据的访问权限。

    关于

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

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

    【讨论】:

    • 感谢您的回复。我不确定 Facebook iOS 应用程序是否会发挥作用——您切换到它进行初始登录,但不是为了这些续订。因此,除了初始登录之外,Facebook iOS 应用似乎没有任何作用。
    • 另外,鉴于 HTTP 请求不通过 Facebook 应用程序,因此可以只从服务器而不是应用程序发出请求。查看代码库(我的问题中的链接 4),这是一个简单的 HTTP 请求。
    • 我不是指 Facebook iOS 应用——我指的是你的应用(例如 Evernote),它能够发布到 FB 墙上。并且只要您登录到您的 Facebook 帐户,其他应用程序就可以透明地更新令牌。
    • 但我的意思是,扩展/更新请求是一个简单的 HTTP 请求,不需要用户操作,因此不需要用户使用应用程序。甚至可以在服务器上发出请求。
    • 正确 - 不知道该怎么做。我发布的链接明确指出这应该是不可能的......
    【解决方案2】:

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

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

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

    因此,在这一点上,我最好的猜测是稍微提高安全性,同时仍允许应用长期访问。

    【讨论】:

      猜你喜欢
      • 2021-02-19
      • 2011-11-23
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2013-01-10
      相关资源
      最近更新 更多