【问题标题】:Asp. Net 5. Jwt tokens revocationASP。 Net 5. Jwt 令牌撤销
【发布时间】:2016-06-16 07:01:01
【问题描述】:

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

我了解,我需要检查每个请求的数据库,并在需要时向用户提供新的访问令牌。但是我应该在 aspnet 5 的哪里做呢?也许有一些好的做法?

【问题讨论】:

    标签: c# asp.net security oauth-2.0 asp.net-core


    【解决方案1】:

    一种方法是在您的声明中添加一个唯一标识符,您可以查询它是否仍然有效。可以使用内存缓存来存储,也可以使用一些分布式内存缓存比如Redis,这样就不用每次都去打数据库了。

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

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2015-12-13
      • 2015-05-06
      • 2017-06-25
      • 2019-01-12
      • 2018-02-18
      • 2019-04-12
      • 1970-01-01
      相关资源
      最近更新 更多