首頁 >後端開發 >C++ >如何使用 JwtSecurityTokenHandler 正確解碼 JWT 令牌?

如何使用 JwtSecurityTokenHandler 正確解碼 JWT 令牌?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-06 21:59:45270瀏覽

How to Properly Decode JWT Tokens Using JwtSecurityTokenHandler?

使用JwtSecurityTokenHandler 解碼JWT 令牌

使用JWT 時,能夠對其進行解碼以進行身份驗證和授權至關重要。但是,一些開發人員在使用 JwtSecurityTokenHandler 類別時可能會遇到錯誤。

請考慮以下程式碼:

public void TestJwtSecurityTokenHandler()
{
    var stream ="eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJU1MiLCJzY29wZSI6Imh0dHBzOi8vbGFyaW0uZG5zY2UuZG91YW5lL2NpZWxzZXJ2aWNlL3dzIiwiYXVkIjoiaHR0cHM6Ly9kb3VhbmUuZmluYW5jZXMuZ291di5mci9vYXV0aDIvdjEiLCJpYXQiOiJcL0RhdGUoMTQ2ODM2MjU5Mzc4NClcLyJ9";
    var handler = new JwtSecurityTokenHandler();

    var jsonToken = handler.ReadToken(stream);
}

此程式碼可能會拋出錯誤,指出字串不符合所需的緊湊 JSON格式。解決方案是將 ReadToken 的結果轉換為 JwtSecurityToken 物件。

var stream ="eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJU1MiLCJzY29wZSI6Imh0dHBzOi8vbGFyaW0uZG5zY2UuZG91YW5lL2NpZWxzZXJ2aWNlL3dzIiwiYXVkIjoiaHR0cHM6Ly9kb3VhbmUuZmluYW5jZXMuZ291di5mci9vYXV0aDIvdjEiLCJpYXQiOiJcL0RhdGUoMTQ2ODM2MjU5Mzc4NClcLyJ9";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;

或者,可以使用 ReadJwtToken 方法。

var stream ="eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJU1MiLCJzY29wZSI6Imh0dHBzOi8vbGFyaW0uZG5zY2UuZG91YW5lL2NpZWxzZXJ2aWNlL3dzIiwiYXVkIjoiaHR0cHM6Ly9kb3VhbmUuZmluYW5jZXMuZ291di5mci9vYXV0aDIvdjEiLCJpYXQiOiJcL0RhdGUoMTQ2ODM2MjU5Mzc4NClcLyJ9";
var handler = new JwtSecurityTokenHandler();
var jwtSecurityToken = handler.ReadJwtToken(stream);

這些修改會將令牌轉換為正確的類型,允許您存取他們的聲明並驗證它們以進行授權。

以上是如何使用 JwtSecurityTokenHandler 正確解碼 JWT 令牌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn