如何从令牌中提取并获得声明?
我一直在寻找一个确切的答案,但似乎大多数答案是客户电话和超出范围。
问题:我已经拥有访问令牌访问令牌。 如何仅使用访问令牌使用c#代码获取声明?
我想:以下是相同的问题,但我认为没有答案。
如何从经过身份validation的SecurityToken中获取声明
如何从我的Oauth令牌中读取声明?
安装包Newtonsoft.Json
访问令牌只是base64编码的JSON。 您可以按如下方式解析令牌
string token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"; var parts = token.Split('.'); var decoded = Convert.FromBase64String(parts[1]); var part = Encoding.UTF8.GetString(decoded); var jwt = JObject.Parse(part); var name = jwt["name"].Value();
UPDATE
- 建议不要在客户端上解析访问令牌,只应在资源服务器上解析访问令牌。
- 您必须validation资源服务器上的访问令牌,以确保令牌在途中未被篡改。
-
大多数情况下,您不需要像上面那样解析令牌,只需使用推荐的JWT库来同时进行validation和解析。 例如
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
上述就是C#学习教程:如何从令牌中提取并获得声明?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/984834.html