代码之家  ›  专栏  ›  技术社区  ›  DoubleVoid

撤销/拒绝ASP.NET核心中间件中针对锁定用户的有效Json Web令牌

  •  0
  • DoubleVoid  · 技术社区  · 5 年前

    我正在使用JWT中间件+ASP.NET标识在我的ASP.NET核心WebAPI项目中建立一个简单的用户/密码登录。

    代币的有效期为15分钟。我想我会利用刷新令牌的概念来让用户保持登录,当他仍然在浏览网站(SPA)或使用移动应用程序时(比如 remember me 选项我会创建一个有效期为一个月的令牌(也许?)

    那么,有没有办法撤销生成的令牌?我正在考虑(在每次请求时)检查用户是否仍然有权访问API。也许还有别的办法来处理这些案子?

    我看到一个AspNetUserTokens表。也许有一种方法可以自动将JWT存储在那里?!目前,我正在使用ASP.NET标识进行用户身份验证。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Nan Yu    5 年前

    您可以参考本文: http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

    简单的方法是发行短期访问令牌,如果您想撤销用户,请撤销刷新令牌,如本文所示,清除客户端的刷新令牌和访问令牌。当然,访问令牌在到期之前仍处于活动状态。

    另一种方法是使用Identity Server 4引用令牌:

    http://docs.identityserver.io/en/release/topics/reference_tokens.html