首頁 > 後端開發 > C++ > 如何使用 JwtSecurityTokenHandler 解碼 JWT 令牌並解決「字串需要採用緊湊 JSON 格式」錯誤?

如何使用 JwtSecurityTokenHandler 解碼 JWT 令牌並解決「字串需要採用緊湊 JSON 格式」錯誤?

Barbara Streisand
發布: 2025-01-06 21:46:40
原創
515 人瀏覽過

How to Decode JWT Tokens using JwtSecurityTokenHandler and Resolve

使用 JwtSecurityTokenHandler 解碼 JWT 令牌

使用 JwtSecurityTokenHandler 類別解碼 JWT 令牌可以是一項簡單的任務。但是,如果您遇到諸如“字串需要採用緊湊 JSON 格式”錯誤之類的問題,請按以下方法解決它。

如同問題中所提到的,JwtSecurityTokenHandler 要求字串採用特定格式: Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL,Base64UrlEncodedSignature.

Read方法。它的工作原理如下:

使用強制轉換方法:

var stream = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;
登入後複製
tokenS 變數現在是 JwtSecurityToken 類型,允許使用 tokenS.Claims 存取聲明。

使用 ReadJwtToken方法:

var token = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jwtSecurityToken = handler.ReadJwtToken(token);
登入後複製
或者,您可以使用 ReadJwtToken 方法直接讀取令牌。此方法也傳回一個 JwtSecurityToken 物件。

正確解碼令牌後,您可以使用下列方式擷取宣告:

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;
登入後複製
這將從令牌中擷取 jti 宣告值。

請記住,使用 JwtSecurityTokenHandler 解碼 JWT 令牌時必須使用正確的格式,以避免錯誤並確保正確存取索賠。

以上是如何使用 JwtSecurityTokenHandler 解碼 JWT 令牌並解決「字串需要採用緊湊 JSON 格式」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板