3.2. Device Authorization Response (デバイス認可レスポンス)
応答として、認可サーバーは、限られた時間有効な一意のデバイス検証コードとエンドユーザーコードを生成し、それらを "application/json" 形式 [RFC8259] を使用して 200 (OK) ステータスコードで HTTP 応答本文に含めます。応答には次のパラメータが含まれます:
device_code (デバイスコード)
- 必須 (REQUIRED)。デバイス検証コード。
user_code (ユーザーコード)
- 必須 (REQUIRED)。エンドユーザー検証コード。
verification_uri (検証 URI)
- 必須 (REQUIRED)。認可サーバー上のエンドユーザー検証 URI。エンドユーザーがユーザーエージェントに手動で入力するように求められるため、URI は短く覚えやすいものである必要があります。
verification_uri_complete (完全な検証 URI)
- 任意 (OPTIONAL)。"user_code"(または "user_code" と同じ機能を持つ他の情報)を含む検証 URI で、非テキスト伝送用に設計されています。
expires_in (有効期限)
- 必須 (REQUIRED)。"device_code" と "user_code" の有効期間(秒単位)。
interval (間隔)
- 任意 (OPTIONAL)。クライアントがトークンエンドポイントへのポーリングリクエスト間で待機すべき (SHOULD) 最小時間(秒単位)。値が提供されない場合、クライアントはデフォルトとして 5 を使用しなければなりません (MUST)。
例:
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
{
"device_code": "GmRhmhcxhwAzkoEqiMEg_DnyEysNkuNhszIySk9eS",
"user_code": "WDJB-MJHT",
"verification_uri": "https://example.com/device",
"verification_uri_complete":
"https://example.com/device?user_code=WDJB-MJHT",
"expires_in": 1800,
"interval": 5
}
エラーが発生した場合(無効に構成されたクライアントなど)、認可サーバーは [RFC6749] のセクション 5.2 で指定されたトークンエンドポイントと同じ方法で応答します。