【发布时间】:2020-06-12 22:17:59
【问题描述】:
正在研究如何使用 JWT,但发现对我来说并不明显: 为什么刷新访问令牌不使用访问令牌和刷新令牌,而只使用刷新令牌?
在这种情况下,我们将能够:
- 验证访问令牌签名,即使它已过期。
- 从负载中获取访问令牌信息,这可能有助于在数据库中查找刷新令牌。
【问题讨论】:
标签: jwt access-token refresh-token
正在研究如何使用 JWT,但发现对我来说并不明显: 为什么刷新访问令牌不使用访问令牌和刷新令牌,而只使用刷新令牌?
在这种情况下,我们将能够:
【问题讨论】:
标签: jwt access-token refresh-token
您的问题有点不清楚,并且假设了一些可能不正确的事情。访问令牌和刷新令牌都必须是 JWT,并且 JWT 不是特定于 OAuth2(它定义了访问令牌和刷新令牌,但没有说明它们应该如何实现)。
访问令牌和刷新令牌的受众也不同 - 访问令牌被发送到(可能是单独的)资源服务器(如果它们是自包含的,发布授权服务器甚至可能没有保留副本)。刷新令牌被发送到授权服务器。
在数据库中定位任何一种类型的令牌(假设它们不是像 JWT 那样自包含的令牌)永远不会成为问题,因为它们应该是唯一的令牌,它们是数据库表的理想主键。因此,没有理由将过期的访问令牌作为刷新请求的一部分发送。
顺便说一句,欢迎来到 Stack Overflow :)。
【讨论】: