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