美文网首页人生几何?
关于OAuth 协议中刷新令牌存活时间的讨论

关于OAuth 协议中刷新令牌存活时间的讨论

作者: _扫地僧_ | 来源:发表于2021-09-17 09:42 被阅读0次

    OAuth 2.0 协议里,刷新令牌用于在当前访问令牌到期时获取新的访问令牌。 有关更多信息,请参阅 OAuth 2.0 RFC。

    以 LinkedIn 提供的 API 为例。

    LinkedIn 提供在固定时间段内有效的程序化刷新令牌。 默认情况下,访问令牌的有效期为 60 天,程序化刷新令牌的有效期为一年。 当刷新令牌过期时,成员必须重新授权您的应用程序。

    当您使用刷新令牌生成新的访问令牌时,刷新令牌的生命周期或生存时间 (TTL) 与初始 OAuth 流中指定的相同(365 天),并且新的访问令牌具有新的 TTL 60 天。

    例如,在:

    • 第 1 天 - 您的刷新令牌的 TTL 为 365 天,您的访问令牌的 TTL 为 60 天。

    • 第 59 天 - 如果您使用刷新令牌生成新的访问令牌,则访问令牌的 TTL 为 60 天,刷新令牌的 TTL 为 306 天 (365-59=306)。

    • 第 360 天 - 如果您生成新的访问令牌,您的访问令牌和刷新令牌都将在 5 天后过期 (365-360=5),您必须使用授权流程让成员重新授权您的应用程序。

    and to clarify: if your access token expired, and it was refreshed using the refresh token --> that doesn’t make the refresh token duration reset. The refresh token’s timeout will continue to tick from the moment you first logged in.

    刷新令牌可用于创建新的访问令牌并允许长时间无缝操作。

    但是,由于技术或政策原因,领英保留随时撤销刷新令牌或访问令牌的权利。在这种情况下,利用刷新令牌的产品的期望是回退到标准 OAuth 流程,并将登录屏幕呈现给最终用户。

    获取刷新令牌

    使用授权代码流获取刷新令牌和访问令牌。 如果您的应用程序获得了编程刷新令牌的授权,则在您为访问令牌交换授权代码时将返回以下字段:

    • refresh_token — 应用程序的刷新令牌。 此令牌必须保持安全。

    • refresh_token_expires_in — 刷新令牌到期前剩余的秒数。 刷新令牌通常比访问令牌具有更长的生命周期。

    相关文章

      网友评论

        本文标题:关于OAuth 协议中刷新令牌存活时间的讨论

        本文链接:https://www.haomeiwen.com/subject/avsrvltx.html