繁体   English   中英

如何在不使用JWT的情况下从访问令牌中获取用户数据

[英]How to get user data from the access token without JWT

我正在从Azure AD登录中获取访问令牌。 但是我不想使用JWT dll从访问令牌中提取数据。 所以我需要一个替代解决方案。 这是我在JWT中的示例代码

 var handler = new JwtSecurityTokenHandler();
            JwtSecurityToken tokenS = handler.ReadToken(data.AccessToken) as JwtSecurityToken;
            var claims = tokenS.Claims;
            var username = claims.FirstOrDefault(s => s.Type == "email").Value;

使用的dll:使用System.IdentityModel.Tokens.Jwt; 我不希望该dll提取数据。 我需要不使用dll的另一种解决方案。

我不会问为什么您不希望出于特定目的而使用您拥有的库。 无论如何,JWT只是3个以64为基数的编码字符串,以'。'串联在一起(假定其已签名但未加密)。

所以:

var split = jwt.Split('.')
var token = Convert.FromBase64String(split([1]))

中间位是json中的令牌,请使用newtonsoft进行读取

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM