Authlete API からのレスポンスの処理に関する基本的な考えかた

Table of Contents

Authlete API からのレスポンスの処理に関する基本的な考えかた

ほとんどの Authlete API は、レスポンスに action というレスポンスパラメーターを含んでいます。認可サーバーを実装する際には、Authlete の API を呼び出したのち、返却されたレスポンスの action の値を最初にチェックし、その値に従って動作を行うようにします。

resultCode の値を見て動作を切り分ける実装は避けてください。

たとえば /auth/authorization API の場合、レスポンスに含まれる action の値は次のいずれかです。

  • BAD_REQUEST
  • FORM
  • INTERACTION
  • INTERNAL_SERVER_ERROR
  • LOCATION
  • NO_INTERACTION

action=INTERACTION は、認可リクエストが正しいことを示しています。この場合、認可サーバーは通常、ユーザー認証と同意確認を行うページ(HTML)を生成して Web ブラウザに返し、ユーザーとのインタラクションを開始することになります。そして、そのユーザー認証と同意確認が完了した場合には続けて /auth/authorization/issue API を、非同意やキャンセルにより完了しなかった場合には、かわりに /auth/authorization/fail API を呼び出します。(参考: Authorization Endpoint における ticket パラメーターの特性

action=BAD_REQUEST は、認可リクエストが不正であり、Web ブラウザに 400 Bad Request を返すべきであるという意味です。認可サーバーは次のような応答を Web ブラウザに返してください。

HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
(API レスポンスに含まれる responseContent の値をここに置く)

action=LOCATION は、Web ブラウザに 302 Found を返すべきであるという意味です。認可サーバーは次のような応答を Web ブラウザに返してください。

HTTP/1.1 302 Found
Location: (API レスポンスに含まれる responseContent の値をここに置く)
Cache-Control: no-store
Pragma: no-cache