カスタムユーザーデータストレージ
カスタムユーザーデータストレージを使用する場合、エクソーラログインは仲介者として機能し、すべてのユーザー識別データはユーザー側で保管されます。エクソーラログインは、ウェブフックのヘッダーおよび本文に含まれるトークンで認証データを渡します。
POST
リクエストはhttp://localhost:3000/my-webhook-endpoint
のようなURLには届きません。Ngrokを使うと、外部からのアクセス用のトンネルを作ることができ、エクソーラからのリクエストをローカルで受け取ることができます。これについては、ngrokに関するドキュメントで詳しく読むことができます。統合フロー
クライアントとして、ログインウィジェットまたはLogin APIコールを使用するアプリケーションを使用できます。クライアントとエクソーラログインサーバー間のインタラクションフローは以下のとおりです:
- クライアントはエクソーラログインに送信します。リクエストのフォーマットについては認証方法で説明されています。
- エクソーラログインサーバーはあなたのサーバーにウェブフックを送信します。ヘッダーには
“request_type”: “gateway_token”
パラメータを持つサーバーJWTが含まれます。トークン検証をセットアップすrには、説明に従ってください。ユーザー識別データの一部は、ウェブフックの本文で渡されます。 - ウェブフックの受信を確認するには、サーバーは以下を返す必要があります:
- 応答が成功した場合は
200
、201
、または204
HTTPコード。 - 指定されたユーザーが見つからなかった場合、または無効な署名が渡された場合は、問題の説明を含む
400
HTTPコード。サーバー上で、一時的な問題が発生した場合、ウェブフックハンドラーは5xx
HTTPコードを返すこともあります。
- 応答が成功した場合は
- エクソーラログインサーバーはサーバーから応答を処理し、認証トークンをクライアントに返します。
- クライアントは応答を処理します。
ユーザー識別後にユーザー情報をJWTに追加したい場合は、レスポンスボディに任意のパラメータセットを含むJSONオブジェクトを返してください。このオブジェクトは、JWTのpartner_data
フィールドに保存されます。
クライアントとして、ログインウィジェットまたはLogin APIコールを使用するアプリケーションを使用できます。クライアントとエクソーラログインサーバー間のインタラクションフローは以下のとおりです:
- クライアントはエクソーラログインに送信します。リクエストのフォーマットについては認証方法で説明されています。
- エクソーラログインサーバーはあなたのサーバーにウェブフックを送信します。ヘッダーには
“request_type”: “gateway_token”
パラメータを持つサーバーJWTが含まれます。トークン検証をセットアップすrには、説明に従ってください。ユーザー識別データの一部は、ウェブフックの本文で渡されます。 - ウェブフックの受信を確認するには、サーバーは以下を返す必要があります:
- 応答が成功した場合は
200
、201
、または204
HTTPコード。 - 指定されたユーザーが見つからなかった場合、または無効な署名が渡された場合は、問題の説明を含む
400
HTTPコード。サーバー上で、一時的な問題が発生した場合、ウェブフックハンドラーは5xx
HTTPコードを返すこともあります。
- 応答が成功した場合は
- エクソーラログインサーバーは、あなたのサーバーからの応答を処理し、クライアントに認証トークンを返します。
- クライアントは、エクソーラログインサーバーにJWTを生成する
POST
リクエストを送信します。リクエスト本文には、以下の必須パラメータを含める必要があります:grant_type
— JWTグラントタイプで、authorization_code
の値を渡します。client_id
— OAuth 2.0クライアントID。client_secret
— OAuth 2.0クライアントシークレットID。機密認証タイプに必要です。code
— 認証コード。
- エクソーラログインサーバーは、アクセストークンとリフレッシュトークンのペアをクライアントに返します。
- クライアントは応答を処理します。
- アクセストークンの有効期限が切れると、クライアントはエクソーラログインサーバーにJWTを生成する
POST
リクエストを送信します。リクエスト本文には、以下の必須パラメータを含める必要があります:grant_type
— JWTグラントタイプで、refresh_token
の値を渡します。client_id
— OAuth 2.0クライアントID。refresh_token
— ユーザー認証リクエストへの応答で受け取ったリフレッシュトークン。
JWTでユーザーを識別したり、トークンをリフレッシュする際に、ユーザー情報をJWTに追加できます。応答本文で任意のパラメータを含むJSONオブジェクトを返すことで、このオブジェクトはJWTのpartner_data
フィールドに保存されます。
- ニックネーム
- 生年月日
- 名
- 姓
- あなたのサーバー上のユーザーID
ユーザー属性オブジェクトの配列を渡すことによって、ユーザー属性を更新することもできます。これらのオブジェクトの構造については、以下で説明します。
ユーザー属性オブジェクトの構造:
パラメータ | 種類 | 説明文 |
---|---|---|
attr_type | string | 6341サービス属性に対するユーザーのアクセス レベルの定義:
|
key | string | ユーザーの属性を識別するための属性名。ユーザーごとにユニークである必要があります。 最大長さ:256シンボル。数字、ラテン文字、ハイフン、アンダースコアを使用することができます。 |
permission | string or null | ユーザーの属性へのアクセスのタイプは、メソッドによって返される属性のリストに影響します: 可能な値: public 、private (デフォルト)。 |
read_only | string | 属性が変更から保護されているかどうか。デフォルトでは、false と属性値の変更は許可されています。 |
value | string | ユーザーの属性の値。 最大長さ:256シンボル。 |
ユーザー登録
- クライアントは、
Register new user POST
リクエストをエクソーラログインサーバーに送信します。リクエストには、以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。- 本文パラメータ:
username
— ユーザー名。許可される長さ:3~255文字。password
— ユーザーのパスワード。許可される長さ:6~100文字。email
— ユーザーのメールアドレス。許可される長さ:1~255文字。
- エクソーラログインサーバーは、「新規ユーザー検URL」にウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_registration_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
email
にフラグが付けられ、未確認の時、ユーザーデータはエクソーラデータベースに書き込まれます。ユーザーはアカウント確認メールを受け取ります。- ログインウィジェットを統合している場合、ユーザーは次のメッセージとともにページにリダイレクトされます:{email}に送信した指示に従って、アカウントを確認してください。
- ユーザー登録に失敗した場合、認証ウィジェットに表示されるエラーメッセージを提供することができます。これを行うには、ユーザ作成リクエストの応答で、以下の詳細を持つ
error
オブジェクトを渡します:code
パラメータで、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを提供します。
エラーメッセージを持つオブジェクトの例:
- json
1{
2 "error": {
3 "code": "011-002",
4 "description": "<string>"
5 }
6}
- クライアントは、
Register new user POST
リクエストをエクソーラログインサーバーに送信します。リクエストには以下の必須パラメータを含める必要があります:- クエリパラメータ:
response_type
— JWTグラントタイプでは、code
の値を渡します。client_id
— OAuth 2.0クライアントID。state
— 追加のユーザー認証に使用される値です。CSRF攻撃を防ぐために必要です。応答で返されます。許容される長さは1〜8文字です。
- 本文パラメータ:
username
— ユーザー名。許可される長さ:3~255文字。password
— ユーザーのパスワード。許可される長さ:6~100文字。email
— ユーザーのメールアドレス。許可される長さ:1~255文字。
- クエリパラメータ:
- エクソーラログインサーバーは、「新規ユーザー検URL」にウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_registration_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
email
にフラグが付けられ、未確認の時、ユーザーデータはエクソーラデータベースに書き込まれます。ユーザーはアカウント確認メールを受け取ります。- ログインウィジェットを統合している場合、ユーザーは次のメッセージとともにページにリダイレクトされます:{email}に送信した指示に従って、アカウントを確認してください。
- ユーザー登録に失敗した場合、認証ウィジェットに表示されるエラーメッセージを提供することができます。これを行うには、ユーザ作成リクエストの応答で、以下の詳細を持つ
error
オブジェクトを渡します:code
パラメータで、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを提供します。
エラーメッセージを持つオブジェクトの例:
- json
1{
2 "error": {
3 "code": "011-002",
4 "description": "<string>"
5 }
6}
ユーザー名とパスワード経由での認証
- クライアントは、
Auth by username and password POST
リクエストをエクソーラログインサーバーに送信します。リクエストには、以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。- 本文パラメータ:
username
— ユーザー名。許可される長さ:3~255文字。password
— ユーザーのパスワード。許可される長さ:6~100文字。
- エクソーラログインサーバーは、「ユーザー検証URL」にウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ユーザー検証URLウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストの応答で、以下の詳細情報を含む
error
オブジェクトを渡します:code
パラメータには、エラーコード(例えば、011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
- エクソーラログインサーバーはユーザーJWTを生成します。
- ユーザーは、
token
クエリパラメータを使用してlogin_url
にリダイレクトされます。このtoken
パラメータには、ユーザーJWTが含まれています。
- クライアントは、
Auth by username and password POST
リクエストをエクソーラログインサーバーに送信します。リクエストには以下の必須パラメータを含める必要があります:- クエリパラメータ:
response_type
— JWTグラントタイプでは、code
の値を渡します。client_id
— OAuth 2.0クライアントID。state
— 追加のユーザー認証に使用される値です。CSRF攻撃を防ぐために必要です。応答で返されます。許容される長さは1〜8文字です。
- 本文パラメータ:
username
— ユーザー名。許可される長さ:3~255文字。password
— ユーザーのパスワード。許可される長さ:6~100文字。
- クエリパラメータ:
- エクソーラログインサーバーは、新規ユーザー検URLにウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ユーザー検証URLウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストの応答で、以下の詳細情報を含む
error
オブジェクトを渡します:code
パラメータには、エラーコード(例えば、011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
- エクソーラログインサーバーはユーザーJWTを生成します。
- ユーザーは、
token
クエリパラメータを使用してlogin_url
にリダイレクトされます。このtoken
パラメータには、ユーザーJWTが含まれています。
電話番号経由のパスワードレス認証
- クライアントは認証フォームを開き、ユーザーが電話番号を入力できるようにします。
- ユーザーは自分の電話番号を入力します。
- クライアントは、エクソーラログインサーバーに
Start auth by phone number POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。phone_number
本文パラメータ — ユーザーの電話番号。
- クライアントは、ユーザーが検証コードを入力するためのフィールドを表示します。
- ユーザーは受信した検証コードを入力します。
- クライアントは、エクソーラサーバーに
Complete auth by phone number POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。- 本文パラメータ:
code
— 確認コード。phone_number
— ユーザーの電話番号。operation_id
— 確認コードID。
- 初回ユーザー認証の場合、エクソーラログインサーバーはパスワードレスログインURLにウェブフックを送信します。レスポンスは、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。応答で提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。 - ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細を含む
error
オブジェクトを渡します。code
パラメータには、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "login": "+12025550140",
7 "type": "phone"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_phone_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"login":"+12025550140","type":"phone"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- クライアントは認証フォームを開き、ユーザーが電話番号を入力できるようにします。
- ユーザーは自分の電話番号を入力します。
- クライアントは、エクソーラログインサーバーに
Start auth by phone number POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:- クエリパラメータ:
response_type
— JWTグラントタイプでは、code
の値を渡します。client_id
— OAuth 2.0クライアントID。state
— 追加のユーザー認証に使用される値です。CSRF攻撃を防ぐために必要です。レスポンスで返されます。許容される長さは1〜8文字です。
phone_number
本文パラメータ — ユーザーの電話番号。
- クエリパラメータ:
- クライアントは、ユーザーが検証コードを入力するためのフィールドを表示します。
- ユーザーは受信した検証コードを入力します。
- クライアントは、エクソーラサーバーに
Complete auth by phone number POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:client_id
クエリパラメータ — OAuth 2.0クライアントID。- 本文パラメータ:
code
— 確認コード。phone_number
— ユーザーの電話番号。operation_id
— 確認コードID。
- 初回ユーザー認証の場合、エクソーラログインサーバーはパスワードレスログインURLにウェブフックを送信します。レスポンスは、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。応答で提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。 - ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細を含む
error
オブジェクトを渡します。code
パラメータには、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "login": "+12025550140",
7 "type": "phone"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_phone_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"login":"+12025550140","type":"phone"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
メール経由でパスワードレス認証
- クライアントは認証フォームを開き、ユーザーがメールアドレスを入力できるようにします。
- ユーザーは自分のメールアドレスを入力します。
- クライアントは、エクソーラログインサーバーに
Start auth by email POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。email
本文パラメータ — ユーザーのメールアドレス。
- クライアントは、ユーザーが検証コードを入力するためのフィールドを表示します。
- ユーザーは受信した検証コードを入力します。
- クライアントは、エクソーラサーバーに
Complete auth by email POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。- 本文パラメータ:
code
— 確認コード。email
— ユーザーのメールアドレス。operation_id
— 確認コードID。
- 初回ユーザー認証の場合、エクソーラログインサーバーはパスワードレスログインURLにウェブフックを送信します。レスポンスは、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。応答で提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。 - ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細を含む
error
オブジェクトを渡します。code
パラメータには、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_email_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email": "user@mail.com",
7 "type": "email"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_email_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email": "user@mail.com","type": "email"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- クライアントが認証フォームを開き、ユーザーがメールアドレスを入力できるようにします。
- ユーザーがメールアドレスを入力します。
- クライアントがエクソーラログインサーバーに
Start auth by email POST
リクエストを送信します。このリクエストには、以下の必須パラメータを含める必要があります:- クエリパラメータ:
response_type
— JWTグラントタイプで、code
の値を渡します。client_id
— OAuth 2.0クライアントID。state
— 追加のユーザー認証に使用される値です。CSRF攻撃を防ぐために必要です。応答で返されます。許容される長さは1〜8文字です。
email
本文パラメータ — ユーザーのメールアドレス。
- クエリパラメータ:
- クライアントがユーザーに検証コードを入力するためのフィールドを表示します。
- ユーザーが受け取った認証コードを入力します。
- クライアントは、エクソーラサーバーに
Complete auth by email POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:client_id
クエリパラメータ — OAuth 2.0クライアントID。- 本文パラメータ:
code
— 確認コード。email
— ユーザーのメールアドレス。operation_id
— 確認コードID。
- 初回ユーザー認証の場合、エクソーラログインサーバーはパスワードレスログインURLにウェブフックを送信します。レスポンスは、このインタラクションフローで説明されている形式である必要があります。応答では、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。応答で提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。 - ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細を含む
error
オブジェクトを渡します。code
パラメータには、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_email_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email": "user@mail.com",
7 "type": "email"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_email_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email": "user@mail.com","type": "email"}'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
ソーシャルネットワーク経由の認証
ソーシャルネットワーク経由の認証時にユーザーデータを取得するには、パブリッシャーアカウントのログインプロジェクトの設定(ユーザーデータベース > ストレージ > カスタムストレージセクション)で、ソーシャルログインURLを指定します。ソーシャルネットワークから受信したデータを含むリクエストがこのURLに送信されます。
認証フロー:
- クライアントは、エクソーラログインサーバーに
Auth via social network POST
リクエストを送信します。リクエストには以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。provider_name
パスパラメータ — パブリッシャーアカウントでログインに接続されているソーシャルネットワークの名前。指定可能な値:amazon
、apple
、xsolla
、baidu
、battlenet
、discord
、epicgames
、facebook
、github
、google
、kakao
、linkedin
、mailru
、microsoft
、msn
、naver
、ok
、paypal
、qq
、reddit
、steam
、twitch
、twitter
、vimeo
、vk
、wechat
、weibo
、xbox
、yahoo
、yandex
、youtube
。
- ユーザーはソーシャルネットワークにログインします。
- エクソーラログインサーバーは、ソーシャルネットワークから受信したユーザーデータを処理し、ソーシャルログインURLにウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。レスポンスでは、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ユーザーデータは、一時的なゲートウェイトークン(“request_type”: “gateway_token”
を持つサーバートークン)としてAuthorization
ヘッダーに渡されます。
ゲートウェイトークンの主なフィールド:
クレーム | 種類 | 説明 |
---|---|---|
exp | Unix Timestamp | JWTの有効期限の日時。JWTの存続時間は7分です。 必須。 |
iat | Unix Timestamp | JWTが発行された日時。 必須。 |
iss | string | JWTに署名したサービスhttps://login.xsolla.com 。 必須。 |
request_type | string | 定数:gateway_request 。 必須。 |
xsolla_login_project_id | string(UUID) | パブリッシャーアカウントの御社のログインプロジェクトID。 必須。 |
string | ユーザーのメールアドレス。 | |
sub | string(UUID) | エクソーラログインサーバー側に書き込まれたユーザーID。 必須。 |
username | string | ユーザー名。 |
provider | string | 認証に使用されるソーシャルネットワークの名前。 必須。 |
id | string | ソーシャルネットワークのユーザーID。 必須。 |
social_access_token | string | ユーザーが認証されたソーシャルネットワークのアクセストークン。このクレームの送信を有効にするには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。 |
partner_data | string | 認証中にサーバーから応答本文で返される任意の種類のデータ。このクレームの送信を有効にするには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。 |
トークンペイロードの例:
- json
1{
2 "exp": 1573635020,
3 "iat": 1573634600,
4 "iss": "https://login.xsolla.com",
5 "request_type": "gateway_request",
6 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
7 "sub": "00000000-0000-0000-0000-000000000000",
8 "email": "example@test.com",
9 "username": "Smith707",
10 "provider": "google",
11 "id": "123",
12}
ソーシャルログイン URLウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_social_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
1curl --request POST \
2 --url 'https://your.hostname/your_social_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストの応答で、以下の詳細情報を含む
error
オブジェクトを渡します:code
パラメータには、エラーコード(例えば、011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ソーシャルネットワーク経由の認証時にユーザーデータを取得するには、パブリッシャーアカウントのログインプロジェクトの設定(ユーザーデータベース > ストレージ > カスタムストレージセクション)で、ソーシャルログインURLを指定します。ソーシャルネットワークから受信したデータを含むリクエストがこのURLに送信されます。
認証フロー:
- クライアントは、エクソーラログインサーバーに
Auth via social network POST
リクエストを送信します。リクエストには、以下の必須パラメータを含める必要があります:- クエリパラメータ:
response_type
— JWTグラントタイプで、code
の値を渡します。client_id
— OAuth 2.0クライアントID。state
— 追加のユーザー認証に使用される値です。CSRF攻撃を防ぐために必要です。応答で返されます。許容される長さは1〜8文字です。
provider_name
パスパラメータ — パブリッシャーアカウントでログインに接続されているソーシャルネットワークの名前。指定可能な値:amazon
、apple
、xsolla
、baidu
、battlenet
、discord
、epicgames
、facebook
、github
、google
、kakao
、linkedin
、mailru
、microsoft
、msn
、naver
、ok
、paypal
、qq
、reddit
、steam
、twitch
、twitter
、vimeo
、vk
、wechat
、weibo
、xbox
、yahoo
、yandex
、youtube
。
- クエリパラメータ:
- ユーザーはソーシャルネットワークにログインします。
- エクソーラログインサーバーは、ソーシャルネットワークから受信したユーザーデータを処理し、ソーシャルログインURLにウェブフックを送信します。応答は、このインタラクションフローで説明されている形式である必要があります。レスポンスでは、ユーザー属性のリストや必要なJSONオブジェクトを指定できます。レスポンスで提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
ユーザーデータは、一時的なゲートウェイトークン(“request_type”: “gateway_token”
を持つサーバートークン)としてAuthorization
ヘッダーに渡されます。
ゲートウェイトークンの主なフィールド:
クレーム | 種類 | 説明 |
---|---|---|
exp | Unix Timestamp | JWTの有効期限の日時。JWTの存続時間は7分です。 必須。 |
iat | Unix Timestamp | JWTが発行された日時。 必須。 |
iss | string | JWTに署名したサービスhttps://login.xsolla.com 。 必須。 |
request_type | string | 定数:gateway_request 。 必須。 |
xsolla_login_project_id | string(UUID) | パブリッシャーアカウントの御社のログインプロジェクトID。 必須。 |
string | ユーザーのメールアドレス。 | |
sub | string(UUID) | エクソーラログインサーバー側に書き込まれたユーザーID。 必須。 |
username | string | ユーザー名。 |
provider | string | 認証に使用されるソーシャルネットワークの名前。 必須。 |
id | string | ソーシャルネットワークのユーザーID。 必須。 |
social_access_token | string | ユーザーが認証されたソーシャルネットワークのアクセストークン。このクレームの送信を有効にするには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。 |
partner_data | string | 認証中にサーバーから応答本文で返される任意の種類のデータ。このクレームの送信を有効にするには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。 |
トークンペイロードの例:
- json
1{
2 "exp": 1573635020,
3 "iat": 1573634600,
4 "iss": "https://login.xsolla.com",
5 "request_type": "gateway_request",
6 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
7 "sub": "00000000-0000-0000-0000-000000000000",
8 "email": "example@test.com",
9 "username": "Smith707",
10 "provider": "google",
11 "id": "123",
12}
ソーシャルログイン URLウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_social_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
1curl --request POST \
2 --url 'https://your.hostname/your_social_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json'
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- ユーザー認証が失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストの応答で、以下の詳細情報を含む
error
オブジェクトを渡します:code
パラメータには、エラーコード(例えば、011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
ユーザーパスワードのリセット
- クライアントは、エクソーラログインサーバーに
Reset password POST
リクエストを送信します。リクエストには、以下の必須パラメータを含める必要があります:projectId
クエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。username
本文パラメータ — ユーザー名。許可される長さ:3~255文字。
- エクソーラログインサーバーは、ユーザーにパスワードリセット確認メールを送信します。
- メール内のパスワードリセット確認後、ユーザーは新しいパスワードを入力できるページにリダイレクトされます。
- ユーザーは新しいパスワードを入力します。
- エクソーラログインサーバーは、パスワードリセットURLにウェブフックを送信します。
- パスワードリセットが失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細情報を含む
error
オブジェクトを渡します。code
パラメータには、エラーコード(例:011-002
)を指定します。description
パラメータには、エラーメッセージのテキストを入力します。
パスワードリセットURLウェブフックの例:
http
- http
- curl
1POST https://your.hostname/your_reset_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "username": "john@gmail.com",
7 "fields": {
8 "password": "NewPa$$word1"
9 }
10}
1curl --request POST \
2 --url 'https://your.hostname/your_reset_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
トークンのリフレッシュ
- アクセストークンの有効期限が切れると、クライアントはエクソーラログインサーバーのJWT生成する
POST
リクエストエンドポイントにリクエストを送信します。リクエスト本文には、以下のパラメータを含める必要があります:grant_type
— JWTグラントタイプで、refresh_token
の値を渡します。client_id
— OAuth 2.0クライアントID。refresh_token
— ユーザー認証リクエストへの応答で受け取ったリフレッシュトークン。
- エクソーラログインサーバーは、ソーシャルネットワークから受け取ったユーザーデータを処理し、リフレッシュトークンURLにウェブフックを送信します。この応答は、インタラクションフローで記述されている形式である必要があります。応答には、ユーザー属性のリストや、必要なJSONオブジェクトを指定できます。あなたが応答で提供するJSONオブジェクトは、ユーザーのJWTの
partner_data
フィールドに記録されます。
- http
1POST https://your.hostname/your_refrsh_token_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
ユーザー属性を含むウェブフックへの応答の例:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
JSONオブジェクトを使用したウェブフックへの応答の例:
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "user@example.com"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
続きを読む
最終更新日: 2025年8月29日誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。