🔑 エリスログイン連動開発ガイド
この文書は、エリスにOAuthベースでログインを連動させるための開発手順を案内します。
1. アプリケーション登録
エリスログインを連動させるに は、まずアプリケーション名とリダイレクトURIを登録する必要があります。backend@elicer.com メールで以下の情報を送信していただければ、内部で登録後、案内いたします。
- アプリケーション名
- リダイレクトURI(最大5個、https必須)
- ログイン完了後に結果を受け取るページのアドレスを入力します。(例: https://my-site.com/elice/oauth/okay)
内部登録プロセスが完了した後、以下の情報をお知らせいたします。
- client_id
- client_secret
- ELICE_WEB_URL(開発)
- ELICE_SERVER_URL(開発)
- ELICE_WEB_URL(運用)
- ELICE_SERVER_URL(運用)
2. エリスログイン連動URL生成
エリスログイン連動ボタンをクリックした時にエリスログイン画面へ移動させるためのAPI呼び出し方法について紹介します。
以下のリクエスト変数を入力してAPIを呼び出すと、ユーザーはエリスログイン画面にリダイレクトされます。
そのログイン画面でユーザーがログインを完了すると、結果とともにリダイレクトURIに再度リダイレクトされます。
リクエストURL情報
メソッド | リクエストURL | レスポンス形式 | 説明 |
---|---|---|---|
GET | https://{ELICE_WEB_URL}/oauth/authorize | URLリダイレクト | エリスログイン認証リクエスト |
リクエスト変数情報
リクエスト変数名 | タイプ | 必須 | デフォルト値 | 説明 |
---|---|---|---|---|
client_id | string | はい | - | アプリケーション登録時に発行されたClient ID値 |
redirect_uri | string | はい | - | アプリケーション登録時に入力したリダイレクトURI値のうちの1つ(URLエンコーディングが必要) |
state | string | はい | - | セキュリティのために毎回新しく生成されるランダムな文字列値 |
scope | string | はい | read | カンマで区切られた権限のリスト |
lang | string | はい | ko | 使用言語を区別するための値 |
リクエスト例
curl -X GET "https://\{ELICE_WEB_URL\}/oauth/authorize?client_id=myclientid&redirect_uri=https%3A%2F%2Fmy-site.com%2Felice%2Fouath%2Fokay&state=om22bsq0jz&scope=read&lang=ko"
レスポンス例
HTTP/1.1 302 Found
Location: https://my-site.com/elice/oauth/okay?code=okaycode12345&state=om22bsq0jz
3. アクセストー クン発行リクエスト
リダイレクトURIにリダイレクトされ、クエリストリングを通じて渡された認証コード(code)は、アクセストークン(access token)を発行する際に使用されます。
認証コードは一回限りのものであり、アクセストークンを1回発行するために使用された後は再利用できません。
アクセストークンは、その後ユーザー情報APIなどエリスREST APIを呼び出す際に使用されます。
このAPIはユーザーのブラウザではなくサーバーで実行される必要があります。
リクエストURL情報
メソッド | リクエストURL | レスポンス形式 | 説明 |
---|---|---|---|
POST | https://{ELICE_SERVER_URL}/oauth/token | json | アクセストークン発行リクエスト |
リクエスト変数情報
リクエスト変数名 | タイプ | 必須 | デフォルト値 | 説明 |
---|---|---|---|---|
client_id | string | はい | - | アプリケーション登録時に発行されたClient ID値 |
client_secret | string | はい | - | アプリケーション登録時に発行されたClient Secret値 |
code | string | はい | - | リダイレクトURIを通じて渡された認証コード値 |
リクエスト例
curl -X POST "https://\{ELICE_SERVER_URL\}/oauth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"myclientid","client_secret":"myclientsecret","code": "okaycode12345"}'
レスポンス情報
フィールド | タイプ | 説明 |
---|---|---|
access_token | string | アクセストークン(発行から1時間後に期限切れ) |
レスポンス例
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "your_access_token"
}
4. アクセストークンを使用してユーザー情報APIを呼び出す
アクセストークンを使用してユーザー情報取得APIを呼び出すことができます。
リクエストURL情報
メソッド | 認証 | リクエストURL | レスポンス形式 | 説明 |
---|---|---|---|---|
GET | OAuth2.0 | https://{ELICE_SERVER_URL}/oauth/account | JSON | ユーザー情報取得 |
リクエスト変数情報
リクエスト変数は特に不要で、リクエストURLを呼び出す際に以下のようにリクエストヘッダーにアクセストークン値を渡します。
リクエストヘッダー
リクエストヘッダー名 | 説明 |
---|---|
Authorization | 次の形式の値:Bearer {アクセストークン} |
リクエスト例
curl -X GET "https://\{ELICE_SERVER_URL\}/oauth/account" \
-H "Authorization: Bearer your_access_token"
レスポンス情報
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
id | String | はい | 同一人物識別情報 |
fullname | String | はい | ユーザー名 |
String | はい | ユーザーメールアドレス | |
phone | String | はい | ユーザー携帯電話番号 |
profile_url | String | はい | ユーザープロフィール画像URL |
locale | String | はい | ユーザー地域情報 |
レスポンス例
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 12345,
"fullname": "John Doe",
"email": "john.doe@example.com",
"phone": "010-1234-5678",
"profile_url": "https://example.com/profile/johndoe",
"locale": "ko"
}