[英]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.