OAuth 2.0 のトークンレスポンスをパースする
OAuth 2.0 は access_token、token_type、expires_in、そして任意で refresh_token を返します。トークンレスポンスを正しくパースして使う方法を学びましょう。
- 1
OAuth 2.0 のトークンレスポンスは JSON オブジェクトです:{access_token, token_type: "Bearer", expires_in: 3600, refresh_token, scope}。access_token は Authorization ヘッダーで使われます。refresh_token は、期限切れ時に新しい access_token を取得するために使います。refresh_token は有効期間が長く権限も大きいため、安全に保管してください(HttpOnly Cookie)。
- 2 JWT デコーダー →
access_token が JWT の場合はデコードします。クレーム(sub、exp、scope、iss、aud)を調べて、トークンの権限と有効期限を把握します。不透明トークンの場合は、イントロスペクションエンドポイントを呼び出してトークン情報を取得します。
- 3 JSON フォーマッター →
トークンレスポンスの JSON を整形して、すべてのフィールドを確認します。検証する点:token_type が "Bearer" であること、expires_in が妥当であること(3600 = 1 時間)、scope が要求した内容と一致すること。有効期限のタイムスタンプを保存して、期限前に先行更新してください。
よくある質問
- リフレッシュトークンとは何ですか?
- リフレッシュトークンは、現在のアクセストークンの期限が切れたときに新しいアクセストークンを取得するための資格情報です。有効期間はより長く(数日〜数週間)、安全に保存されます(HttpOnly Cookie、セキュアストレージ)。アクセストークンは短命(数分〜数時間)で API に送信されます。これにより、アクセストークンが盗まれた場合の露出期間を制限できます。
- token_type フィールドとは何ですか?
- トークンの使い方を示します。"Bearer" は、Authorization ヘッダーに入れることを意味します:"Authorization: Bearer <token>"。これが唯一広くサポートされている種類です。他の種類(MAC、POP)は提案されましたが採用されていません。常に token_type を確認し、正しい仕組みを使ってください。
このタスクを解決するワークフロー
JSON 経由で 2 つの YAML 設定を比較
構造化された値の差分比較しやすいように、YAML 設定を JSON に変換する。 パイプライン
URL 転送用の JSON ペイロードのエンコード
JSON ドキュメントを URL パラメータ用に準備する: 整形、Base64 エンコード、パーセントエンコード — ネストされたパラメータデコードチェーンの正確な逆順。 パイプライン
HJSON から JSON フォーマットへ変換
HJSON をフォーマットし、標準 JSON に変換する。 パイプライン
JSON フォーマットと整合性チェックサム計算
JSON ドキュメントを整形し、以降の変更を検出するために CRC32 チェックサムを計算する。 パイプライン
JSON のミニファイと検証
検査のために JSON をフォーマットし、1 パスで構文的に正しいことを検証する。 パイプライン
JSON フォーマットと TypeScript インターフェース生成
JSON ドキュメントをフォーマットし、1 チェーンで TypeScript インターフェース定義を推論する。 パイプライン
検証、フォーマット後 JSON から YAML へ変換
(ミニファイの可能性がある)JSON 設定を YAML に変換し、微妙に誤った YAML を生成成する代わりに最初のノードで構文エラーを捕捉する。 パイプライン
JSON5 から JSON フォーマットへ変換
JSON5 をフォーマットし、標準 JSON に変換する。 パイプライン
JSONC から JSON フォーマットへ変換
JSONC(コメント付き JSON)をフォーマットし、標準 JSON に変換する。 パイプライン
JWT デコードとペイロード検査
JWT トークンをヘッダーとペイロードにデコードし、検査のために JSON を整形する。 パイプライン
JWT ペイロードのデコードとフォーマット
JWT トークンを解析し、ペイロードを抽出し、検査のために JSON をフォーマットする。 パイプライン
クエリ文字列解析と JSON フォーマット
クエリ文字列をキー・バリューペアに解析し、その後 JSON としてフォーマットする。 パイプライン
TOML から JSON へ変換
TOML 設定ファイルを JSON 入力を期待するツールや API のために解析する。 パイプライン
JSON 経由で TOML から YAML へ変換
TOML 設定ファイルを YAML 形式に変換し、JSON を中間表現として使用する。 パイプライン
ネストされた URL パラメータのデコード(Base64 JSON)
URL エンコード Base64 JSON を運ぶ URL パラメータを可読なフォーマット済み JSON に展開する。 パイプライン
YAML から TypeScript インターフェースを生成
YAML ドキュメントを TypeScript インターフェース定義に変換し、JSON を中間フォーマットとして使用する。 パイプライン