如何在asp.net core web api中使用jwt令牌,只读取用户信息而无需任何验证

时间:2018-05-26 16:37:28

标签: asp.net authentication jwt asp.net-core-2.0 asp.net-core-webapi

我有一个简单的要求,即在每个请求中读取asp.net core web api中的令牌,并读取具有UserID的令牌的子部分。令牌验证将由第三方rest api调用完成,该调用将告知令牌是否有效。我的api中不应该存在验证逻辑。

不幸的是我读过的所有文章,他们都在验证令牌,我不希望这样做。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用以下扩展方法从simple获取userID。使用包含userID值的ClaimType

HttpContext

控制器方法的用法:

public static int GetUserID(this Microsoft.AspNetCore.Http.HttpContext context){
            var claimsIdentity = context.User;
            var claim = claimsIdentity.Claims.FirstOrDefault(cl => cl.Type == ClaimTypes.YOUR_CLAIM_TYPE);            
            return Convert.ToInt32(claim.Value);
        }