ホームページ > バックエンド開発 > C++ > .NET Core で JWT トークンをデコードし、一般的なエラーを回避する方法は?

.NET Core で JWT トークンをデコードし、一般的なエラーを回避する方法は?

Patricia Arquette
リリース: 2025-01-06 21:57:44
オリジナル
508 人が閲覧しました

How to Decode JWT Tokens in .NET Core and Avoid Common Errors?

.NET Core を使用した JWT トークンのデコード

.NET Core では、JWT トークンのデコードには JwtSecurityTokenHandler の使用が含まれます。ただし、コンパクトな JSON 形式でトークンをデコードするときに一般的なエラーが発生する可能性があります。

一般的な問題: JSON 形式が無効です

発生する一般的なエラーの 1 つは、「文字列は次のとおりである必要があります」です。コンパクトな JSON 形式...」。これは、入力トークンが予期される JSON Web Token (JWT) 形式ではない場合に発生します。JSON Web Token (JWT) 形式は、ヘッダー、ペイロード、署名のドットで区切られた 3 つの部分で構成されます。

解決策:

この問題を解決するには、入力トークンがコンパクトな JSON 形式の有効な JWT であることを確認してください。 jwt.io などのオンライン ツールを使用して、トークンの形式を確認できます。

結果のキャストを忘れました:

発生する可能性のある別のエラーは、ReadToken の結果が次の場合です。にアクセスするための適切なタイプ (JwtSecurityToken など) にキャストされていません。 claim.

解決策:

JWT トークンからクレームにアクセスするには、以下に示すように、ReadToken の結果を JwtSecurityToken にキャストする必要があります。

var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;
#region ... code to get claims ... #
ログイン後にコピー

または、オーバーロード メソッド ReadJwtToken を使用して、クレームを直接取得することもできます。 Casting:

var token = handler.ReadJwtToken(stream);
#region ... code to get claims ... #
ログイン後にコピー

Access 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート