如何在.net核心API

时间:2017-09-11 17:52:28

标签: authentication jwt asp.net-core-webapi asp.net-core-1.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();

1 个答案:

答案 0 :(得分:0)

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

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

我还在下面粘贴了2个链接,我觉得这很有帮助: