Golang で JWE トークンを検証する方法

WBOY
リリース: 2024-02-06 09:30:15
転載
571 人が閲覧しました

如何在 Golang 中验证 JWE 令牌

質問の内容

質問が 2 つありますが、まず背景情報を提供したいと思います。

Web アプリケーションでは、nextauth を使用して jwt トークンを生成し、それを golang サーバーへのリクエストに追加します (リソースの取得に使用されます)。

生成されたトークンは、a256gcm によって生成された jwe トークンであるようです。 Golang サーバーでは、トークンを検証し、そのトークンに対するカスタム クレームをいくつか抽出したいと考えています。とはいえ、私たちはそれを解読する方法を見つけようとしています。 go-jose を次のように使用します:

リーリー

得られたもの: panic: square/go-jose: 暗号化プリミティブのエラー

ps: jwe 生成のために nextauth に渡した秘密: これはハッシュに使用される非常に長いテキストです

nextauth によって出力された元の jwe トークン。これを golang サーバーで検証したいと思います。 eyjhbgcioijkaxiilcjlbmmioijbmju2r0nnin0..aiiqd7-cu8hu92f8.kx2k99cylyjr1p0xk_1wusvo521t7kyskx-oeutvjcpzbx27hzh0kh2m lblxqh dmc8q 4uxglhjl4je3ntp_c6nojga-fahyxyqkrzgjfllu9mc4jvuwyonx6dofq0gl3ux9abtp2t35qly-w1qkh8bdg9x4ib1ym-yvs1w-hpbbmfqr7u7x4ohwih_yjqlwadesyq 6da7a97gssxs2go6y b7sh5ww d7iqzdu-uo6eg._pqujcuymuqokid80vjidw ###。


正解


あなたのコメントに基づいて、問題の解決に役立つ返信をまとめました。まず、

ngopkg.in/go-jose/go-jose.v2 パッケージのバージョン 2 を使用しました。これは、(私が見た限りでは) アルゴリズム a256gcm がそれと同じであるためです。バージョン 3 パッケージの最新バージョンには完全な互換性がありません。関連するコードが見つかります: リーリー

ここでは、まず秘密キーを生成してトークンを暗号化し、次にその公開キーを使用して復号化します。簡潔にするために、jwt トークンの生成と検証のためのコードを省略しました。このソリューションをテストするために、生成されたトークンに 2 つのカスタム クレーム (

customclaims 構造で定義された usernamepassword) を追加しました。その後、トークンを解析すると、その値を取得できるようになります。 これでお役に立てましたら、ぜひお知らせください。

以上がGolang で JWE トークンを検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!