質問が 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 パッケージの最新バージョンには完全な互換性がありません。関連するコードが見つかります:
リーリー
customclaims 構造で定義された
username と
password) を追加しました。その後、トークンを解析すると、その値を取得できるようになります。
これでお役に立てましたら、ぜひお知らせください。
以上がGolang で JWE トークンを検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。