このツールについて
jwtviewer.com はトークンをデコードし、jwtparser はトークンを作成します。claimsを設定し、HMACアルゴリズムを選び、シークレットを入力すると、Web Crypto APIでリアルタイムに署名します。bearer tokenを要求するAPIのテスト、テストでの認証セットアップ、特定の exp や role でのバグ再現に便利です。
HMAC(共有シークレット)アルゴリズムのみ対応 — 本番の実トークンをここで署名しないでください。生成トークンはテスト専用と考えてください。すべてローカルで行われ、シークレットとpayloadはブラウザの外に出ません。トークンのデコードや検証には jwtviewer.com をどうぞ。
署名は RFC 7519 に従います:ツールが header {"alg":…,"typ":"JWT"} を組み立て、header と payload を Base64url エンコードし、header.payload に対してシークレットで HMAC-SHA 署名を Web Crypto API で計算します。HS384 と HS512 は HS256 より長いハッシュを使うだけ——バックエンドが期待するものを選んでください。exp・iat・nbf などの時刻 claim は Unix 秒なので、クイック追加ボタンが自動計算します。出力の 3 つの部分は色分けされ、header・payload・署名の境界が一目で分かります。
よくある質問
このツールで RS256 トークンを作成できますか?
いいえ。共有シークレットで署名する HMAC 系(HS256・HS384・HS512)のみです。RS256 には RSA 秘密鍵が必要です。テスト用途なら HMAC で通常十分です。トークンのデコードや検証は jwtviewer.com をどうぞ。
ここにシークレットを入力しても安全ですか?
署名は Web Crypto API によりすべてブラウザ内で行われ、シークレットと payload はアップロードされません。それでも、ここでは使い捨てのテスト用シークレットのみを使い、本番の署名鍵は決して使わないのがベストプラクティスです。
トークンの有効期限はどう設定しますか?
exp claim は秒単位の Unix タイムスタンプです。クイック追加ボタン(exp = +1h・+1d・+7d)をクリックするか自分で値を入力してください。変更のたびにトークンは即座に再署名されます。
なぜ API が生成したトークンを拒否するのですか?
よくある原因:シークレットがサーバーと一致しない、アルゴリズムがバックエンドの期待と異なる、exp が既に過去、あるいはサーバーが RS256 などの非対称アルゴリズムを要求している。jwtviewer.com でトークンをデコードして claim を見比べてください。