使用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中文網其他相關文章!