ホームページ  >  記事  >  バックエンド開発  >  goでjwtトークンから有効期限を取得するにはどうすればよいですか?

goでjwtトークンから有効期限を取得するにはどうすればよいですか?

PHPz
PHPz転載
2024-02-14 12:20:09961ブラウズ

如何从 go 中的 jwt 令牌获取过期日期?

Go 言語では、JWT トークンが一般的な認証メカニズムです。 JWT トークンから有効期限を取得するには、サードパーティ ライブラリ「github.com/dgrijalva/jwt-go」を使用してトークンのペイロードを解析します。まず、トークン文字列を解析して jwt.Token オブジェクトにする必要があります。その後、Token.Claims["exp"] フィールドにアクセスして有効期限を取得できます。このフィールドの値は Unix タイムスタンプであり、time.Unix 関数を使用して時間型に変換できます。このようにして、JWT トークンの有効期限を簡単に取得できます。

質問の内容

私は jwt トークンを持っており、 https://jwt.io/ Web サイトでデコードされたトークンを確認できます。シークレットやクレームを設定する必要はありません。そこで、シークレットを提供せずにトークンをデコードして有効期限を取得する方法を探しています。

私はライブラリ ngopkg.in/square/go-jose.v2/jwt を使用しています。以下は私のコードです:

リーリー

戻り値 token keyid、アルゴリズムを含むヘッダーフィールドがありますが、有効期限はわかりません。

このトピックを検索したところ、github.com/auth0/go-jwt-middleware/v2/validator ライブラリを使用すると言っていますが、キー/シークレットの設定が必要です。トークンの有効期限にシークレットが必要かどうかを解析します。 ウェブサイト https://jwt.io/有効期限を知る方法は?

回避策

jwt.io のサンプル jwt トークンを使用して、このコードは 未検証の署名を持つクレームを解析して取得します。 リーリー

この例では、有効期限は

claims マッピングのフィールドの 1 つとして表示されます。これを取得するには、exp, ok :=claims["expire"] (正確な名前に応じて) を使用します。

以上がgoでjwtトークンから有効期限を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。