阿斯普.净 5.JWT 令牌吊销

本文关键字:令牌 JWT | 更新日期: 2023-09-27 18:37:05

我在我的应用程序中使用了jwt令牌中间件和Asp.Net.OpenIdConnect.Server。 事实上,它工作正常。 但我对一件事感到困惑。 如果我使用令牌,我无法立即授予新的声明或禁止我的用户。例如。 我提供用户访问令牌(过期 2 天)和刷新令牌(过期 2 周)。 然后我给这个用户管理员权限。但是他只会通过 2 天知道这一点,当他当前的访问令牌过期时,身份验证服务器将使用刷新令牌为他提供新令牌。我怎样才能在下一次请求时立即赋予他新的权利?

我了解,我需要检查每个请求的数据库,并在需要时向用户提供新的访问令牌。 但是我应该在 aspnet 5 中在哪里执行此操作?也许对这样的事情有一些好的做法?

阿斯普.净 5.JWT 令牌吊销

一种方法是在声明中放置一个唯一标识符,你可以查询该标识符以查看它是否仍然有效。您可以使用内存缓存或一些分布式内存缓存(如 Redis)来存储它,因此您不必每次都访问数据库。

禁止用户或添加令牌时,可以通过从缓存中删除此令牌将其标记为无效。每次用户刷新令牌时,都应在令牌内创建一个新的唯一 ID。