3.1 アクセストークンの取得|SPIRAL PLACE API

認可コードリクエスト

アプリが認可コードを認証サーバに要求するところから認証フローが開始されます。

リクエストを受けた認証サーバは、受け取った情報を元にクライアントとリダイレクトURIを検証し、
ブラウザなどのユーザーエージェントを介して、SPIRAL PLACEユーザーを指定されたアカウントへ
ログインさせ、アプリによるアクセスへの許可/拒否を尋ねます。
この時、ユーザーエージェントが既に指定されたアカウントへのログインセッションを持っていたら
ログインのステップは省略されます。

過去に既に同一ユーザーが当該アプリを許可している場合でもアプリの認証画面は再度表示されます。ただし、スコープが前回許可したものと異なっている場合は新しいスコープで認可情報が上書き
されます。

URL

https://auth.spiral.place/oauth2/authorization

パラメータ

パラメータ名データ型必須説明
response_typestringcode を入力
client_idstring登録したアプリのクライアントID
redirect_uristring認可後に遷移するリダイレクトURI
scopestring認可を要求するアクセス権限のリスト(スペース区切り)
スコープ参照
statestringリクエストとコールバックの間で状態を維持するために使用するランダムな値

認可コードレスポンス

ユーザーがアプリによるアクセスを許可した場合、認証サーバーは認可コードを発行し、指定された
リダイレクトURIのクエリーコンポーネントに以下のパラメーターを付与してユーザーエージェントを
リダイレクトさせます。

https://example.com/callback?code=認可コード

パラメータ

パラメータ名データ型説明
codestring認可コード
statestringローカルステート
リクエストパラメータの値をそのまま返す

エラーレスポンス

エラー画面

リダイレクトURIの欠落や不正などによって認可リクエストが失敗した場合やクライアントIDが不正な
場合は、リダイレクトURIにリダイレクトせずにエラー画面を表示します。

なお、OAuth 2.0の仕様とは別に、SPIRAL PLACEの仕様に応じて画面上でエラーを表示することも
あります。

エラーメッセージ日本語メッセージ説明
invalid_redirect_uri不正なリダイレクトURIです。リダイレクトURIのフォーマット不備があります。
missing_redirect_uriリダイレクトURIが指定されていません。リダイレクトURIが指定されていません。
mismatching_redirect_uri不正なリダイレクトURIです。アプリ登録時に登録されたリダイレクトURIと異なったリダイレクトURIが指定されています。
invalid_client_id不正なクライアントIDです。クライアントIDが指定されていないか、存在しないクライアントIDが指定されています。
-あなたの権限ではこのアプリを利用できません。リクエストされたスコープとユーザーの権限(アドミン権限の有無)が一致しません。

有効期限エラー画面

アプリの認証画面の有効期限は5分です。有効期限後にアプリの許可または拒否を行った場合は有効期限切れ画面に遷移します。

クエリパラメータエラー

ユーザーがアプリでのアクセスを拒否した場合や、リダイレクトURIの欠落や不正以外の原因で
リクエストが失敗した場合は、リダイレクトURIのクエリに「error」パラメータを追加して
リダイレクトします。
errorパラメータの内容は以下をご参照ください。

error パラメータ説明
invalid_request パラメータに不足、重複があるか、またはサポート外のパラメータが指定されています。
unauthorized_clientアプリに許可されていないレスポンスタイプが指定されています。
access_deniedユーザーによってアクセスが拒否されました。
unsupported_response_type許可されていないレスポンスタイプです。
invalid_scope不正なスコープが指定されています。
server_error予期しないエラーが発生しました。
temporarily_unavailable一時的に利用できない状況です。

トークンリクエスト

認可コードの取得後、アプリは取得した認可コードを含めて、認証サーバにアクセストークンを
リクエストします。

URL

https://auth.spiral.place/oauth2/token

パラメータ

パラメータ名データ型必須説明
grant_typestringauthorization_code を入力
codestring認可サーバーから受け取った認可コード
redirect_uristring認可リクエスト時と同じリダイレクトURI
client_idstring登録したアプリのクライアントID
client_secretstring登録したアプリのクライアントシークレット(パスワード)

※ クライアントシークレットはクライアントの認証を行うためのパスワードです。
  公開されたソースコード内や、アプリユーザーが閲覧できる場所に表示しないでください。


トークンレスポンス

トークンリクエストを受け取った認証サーバはリクエストを検証し、問題がなければアクセス
トークン、リフレッシュトークンなどの認可情報をアプリへ返します。

パラメータ

アクセストークンの発行に成功した場合は、レスポンスボディに以下のパラメーターを付与し、
HTTPステータスコード 200 (OK) でレスポンスを返します。

パラメータ名データ型説明
access_tokenstring認可サーバーが発行するアクセストークン
40~50文字のランダムな文字列
expires_innumberアクセストークンの有効期限(秒)
refresh_tokenstringリフレッシュトークン
40~50文字のランダムな文字列
token_typestringBearer を入力
scopestring許可されたスコープ

※ アクセストークンの有効期限は1時間、リフレッシュトークンの有効期限は90日です。

エラーレスポンス

トークン取得時のエラーは、HTTPレスポンスボディにJSON形式で「error」パラメータを追加して
返されます。
ステータスコードとerrorパラメータの内容は以下をご参照ください。

error パラメータステータスコード説明
invalid_request400パラメータに不足、重複があるか、またはサポート外のパラメータが指定されています。
invalid_client401クライアントの認証に失敗しました。クライアントIDまたはクライアントシークレットが指定されていないか不正です。
もしくはサポートされない認証方式が利用されています。
invalid_grant401認可コードまたはリフレッシュトークンが不正です。
unauthorized_client400許可されていない認証方式が利用されています。
unsupported_grant_type400許可されていない認証方式が利用されています。
invalid_scope401不正なスコープが指定されています。

アクセストークン更新

SPIRAL PLACE APIではリフレッシュトークンに対応しています。

取得したアクセストークンの有効期限は1時間ですが、リフレッシュトークンを利用することで、
認可コードによる認証を再度行うことなく、新しいアクセストークンを取得することができます。

URL

https://auth.spiral.place/oauth2/token

パラメータ

パラメータ名データ型必須説明
grant_typestringrefresh_token を入力
refresh_tokenstringアプリに発行されたリフレッシュトークン
client_idstring登録したアプリのクライアントID
client_secretstring登録したアプリのクライアントシークレット(パスワード)
scopestring認可を要求するアクセス権限のリスト(スペース区切り)
スコープ参照
元々許可されたスコープと同一のものを指定

アクセストークン更新レスポンス

トークンレスポンス」をご参照ください。


アクセストークンの破棄

ユーザーは一度アプリに与えたアクセス許可を管理画面より破棄する(取り消す)ことができます。

スタッフプレースにログインし、「個人設定」の「アプリ管理」よりアクセス許可したアプリの確認
及び許可の取り消しを行うことができます。