首页 > 后端开发 > C++ > 如何在 .NET Core 中解码 JWT 令牌并避免常见错误?

如何在 .NET Core 中解码 JWT 令牌并避免常见错误?

Patricia Arquette
发布: 2025-01-06 21:57:44
原创
524 人浏览过

How to Decode JWT Tokens in .NET Core and Avoid Common Errors?

使用 .NET Core 解码 JWT 令牌

在 .NET Core 中,解码 JWT 令牌涉及使用 JwtSecurityTokenHandler。但是,以紧凑 JSON 格式解码令牌时可能会出现常见错误。

常见问题:无效的 JSON 格式

遇到的一个常见错误是“字符串需要位于紧凑的 JSON 格式...”。当输入令牌不是预期的 JSON Web 令牌 (JWT) 格式时,会发生这种情况,该格式由点分隔的三部分组成:标头、负载和签名。

解决方案:

要解决此问题,请确保输入令牌是紧凑 JSON 格式的有效 JWT。您可以使用 jwt.io 等在线工具来验证令牌的格式。

忘记转换结果:

另一个可能发生的错误是当 ReadToken 的结果为未转换为适当的类型(例如 JwtSecurityToken)来访问

解决方案:

要从 JWT 令牌访问声明,您需要将 ReadToken 的结果转换为 JwtSecurityToken,如下所示:

var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;
#region ... code to get claims ... #
登录后复制

或者,您可以使用重载方法 ReadJwtToken 直接获取声明,而无需转换:

var token = handler.ReadJwtToken(stream);
#region ... code to get claims ... #
登录后复制

访问声明

一旦您拥有 JwtSecurityToken 或 JwtSecurityToken 对象,您就可以使用其 Claims 属性访问声明。每个声明都表示为具有 Type 和 Value 属性的 Claim 对象。

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;
#region ... code to access other claims ... #
登录后复制

以上是如何在 .NET Core 中解码 JWT 令牌并避免常见错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板