使用 JwtSecurityTokenHandler 解碼 JWT 令牌
使用 JwtSecurityTokenHandler 類別解碼 JWT 令牌可以是一項簡單的任務。但是,如果您遇到諸如“字串需要採用緊湊 JSON 格式”錯誤之類的問題,請按以下方法解決它。
如同問題中所提到的,JwtSecurityTokenHandler 要求字串採用特定格式: Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL,Base64UrlEncodedSignature.
使用強制轉換方法:
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中文網其他相關文章!