【问题标题】:Why access token has no longer expiry time?为什么访问令牌不再有到期时间?
【发布时间】:2019-05-30 19:52:07
【问题描述】:

我正在尝试在我的应用程序中使用 Jwt 实现 Oauth2。我有一个疑问是为什么我需要更短的到期时间到access_token 而更长的到期时间到refresh_token。

我的意思是我可以拥有一个有效期更长的access_token,我会保护access_token,就像我保护refresh_token一样,不需要refresh_token。这有意义吗?

那么,如果我从我的应用程序中忽略 refresh_token,我会面临任何可用性问题或安全问题吗?

【问题讨论】:

  • Access token 允许应用程序访问服务。它应该包含在每个请求标头中以访问服务,因此它很有可能被服务器或代理记录。如果它的过期时间很长,它可以在以后用于访问服务(可能代表原始用户)。 Refresh token 不包含在标头中,仅在 POST 请求中用于获取访问令牌。因此,refresh token 落入坏人之手的可能性较小。

标签: spring spring-security jwt refresh-token


【解决方案1】:

见RFC 6749:

1.5。刷新令牌

刷新令牌是用于获取访问令牌的凭据。刷新 令牌由授权服务器颁发给客户端,并且是 用于在当前访问令牌时获取新的访问令牌 失效或过期,或获取额外的访问令牌 具有相同或更窄的范围(访问令牌可能具有更短的 生命周期和少于资源授权的权限 所有者)。颁发刷新令牌是可选的,由 授权服务器。如果授权服务器发出刷新 令牌,它包含在发布访问令牌时(即步骤 (D) 图 1)。

刷新令牌是一个字符串,表示授予的权限 资源所有者的客户端。该字符串通常是不透明的 客户端。令牌表示用于检索 授权信息。与访问令牌不同,刷新令牌是 仅用于授权服务器,从不发送 到资源服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 2016-01-04
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多