【发布时间】:2020-06-01 15:36:16
【问题描述】:
我找到了很多链接,但我没有找到解决问题的方法。
我正在尝试在 asp.net 核心中实现 jwt 刷新令牌。
为了存储刷新令牌,我创建了表。 根据 jwt 的建议,对于 SPA 应用程序,我们不应该向客户端公开刷新令牌。 https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
所以我已经计划好了,
- 在用户登录时,创建访问令牌并共享给客户端
- 为访问令牌创建一个刷新令牌并将其存储在数据库中,并将其存储在仅 HTTP cookie 中
- 当用户访问授权控制器和操作时,如果访问令牌过期,我想根据刷新令牌生成新令牌。
但是, 在很多地方,我发现用户会发送请求。如果未经授权,则用户将使用存储的刷新令牌(本地存储或其他)请求新的访问令牌,并再次调用有效的 api 请求。
我不想像上一段中提到的那样(对吗?)。
当用户发送请求时,如果它无效,我想验证服务器端本身的令牌,需要提供新的访问令牌并继续最后一次 api 调用。
这个实现有什么解决方案,比如解释授权和验证?
【问题讨论】:
标签: asp.net asp.net-core jwt authorize