。net核心API中如何撤消JWT承载令牌

问题描述 投票:3回答:1

我已经实现了JWT Bearer令牌库的身份验证和授权。我正在使用下面的代码销毁JWT令牌或注销当前用户,但它不起作用。

//var claim = _httpContextAccessor.HttpContext.User.Claims;
            // var users = await _userManager.FindByNameAsync(_httpContextAccessor.HttpContext.User.Identity.Name);
            //  var identity = _httpContextAccessor.HttpContext.User.Identity as ClaimsIdentity;
            // foreach (var item in claim)
            // {
            //     identity.RemoveClaim(item);
            // }

            await _signInManager.SignOutAsync();
authentication jwt asp.net-core-webapi asp.net-core-1.1
1个回答
0
投票

无法在用户注销期间取消/撤消JWT令牌,这不是很简单,但是有一种解决方法。您可以尝试按照以下步骤操作:

  • 为令牌设置合理的到期时间
  • 注销时从客户端删除存储的令牌
  • 具有不再有效的令牌的数据库,这些令牌还有一些生存时间
  • 在每个授权的请求上针对黑名单查询提供的令牌

我还在下面粘贴了两个链接,对我自己很有帮助:

© www.soinside.com 2019 - 2024. All rights reserved.