コンテンツへスキップ

JWTデコード

⚠️ この道具は署名を検証しません(発行者の鍵が必要で、ここにはありません)。中身が読めることは、そのトークンが正しいことを意味しません。

「Bearer 」が付いたままでも読み取ります。

⚠️ 本番のトークンを貼るのは避けてください。この道具は送信しませんが、値そのものが資格情報で、画面共有や録画、ブラウザの履歴に残ります。

トークンを貼ると、ヘッダと本体の中身、有効期限の判定がここに出ます。

JWTを貼ると、ヘッダーとペイロードを整形して表示し、発行日時と有効期限を読める形に直します。署名の検証はできないので、そのことも画面に出しています。

よくある質問

トークンは送信されますか。

されません。base64を解いてJSONにするだけの処理で、すべてブラウザの中で行われます。

本番のトークンを貼っても大丈夫ですか。

この道具は送信しませんが、勧めません。JWTは資格情報そのもので、画面共有や録画、ブラウザの履歴に残ります。期限が切れたものか、検証用のものを使ってください。

署名が正しいかを確かめられますか。

できません。発行者の鍵が必要で、鍵を預かる仕組みはここにありません。検証はトークンを受け取る側のサーバーで行うものです。

読めたのに認証が通りません。

読めることと有効であることは別です。期限切れ、対象(aud)や発行者(iss)の不一致、署名の不一致のいずれかを疑ってください。

JWTの中身は暗号化されていないのですか。

されていません。署名は「途中で書き換えられていないこと」を示すもので、「中身を隠すこと」ではありません。ヘッダーとペイロードはbase64urlを解けば誰でも読めます。隠したい値がある場合は、暗号化する別の仕様(JWE)を使うか、そもそもトークンに入れずにサーバー側で引く設計にしてください。

ログアウトしたのに、そのトークンがまだ使えます。

JWTは「発行した時点で有効期限まで有効」という作りで、あとから取り消す仕組みを持っていません。ログアウトで無効にしたい場合は、受け取る側が失効リストを持つか、有効期限を短くして更新用のトークンで回す設計が要ります。この性質は実装の不備ではなく、仕様上の前提です。

有効期限が切れているかを、ここで判定できますか。

exp の値を人が読める日時として表示するので、現在時刻と比べれば分かります。ただし判定そのものは受け取る側のサーバーが行うもので、しかもサーバーの時計とお使いの端末の時計がずれていると結果が変わります。境目に近い場合は、この画面だけで結論を出さないでください。

スポンサーリンク