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

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


たとえば /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


How did we do with this article?