首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板