【发布时间】:2021-06-05 00:51:15
【问题描述】:
我有一个授权服务器和多个使用 OAuth2 的资源服务器。所有这些都是使用 Spring Security OAuth2 实现的。我也有使用授权代码流生成令牌的前端客户端。
我的情况是,如果刷新令牌的有效期为 2 小时,访问令牌的有效期为 1 小时。首先获取令牌没有问题(两个令牌都是新的。1 小时后,访问令牌已过期。现在假设应用程序仅在再过 30 分钟(经过 1.5 小时)后才使用现有的刷新令牌重试新的访问令牌,并且生成一个新的访问令牌,有效期为 1 小时,比刷新令牌多 30 分钟。在前端,我已将令牌存储在 cookie 中,刷新令牌在 30 分钟后被删除。当我尝试再次使用新获取令牌时auth 代码流,spring oauth2 服务器返回相同的过期刷新令牌和活动访问令牌。我的应用程序进入一个混淆状态,即用户是否被授权,因为即使在多次重试后它也只有访问令牌。
是否可以生成有效期总是小于或等于刷新令牌的访问令牌?
【问题讨论】:
标签: java spring spring-boot spring-security oauth-2.0