ブラウザゲームでの登録遅延
どのように動作するか
ユーザーは、登録をしなくてもブラウザでゲームを開始することができます。一定時間後に登録を求められ、ゲームの進行状況が保存されます。登録待ち時間はゲーム側で実装する必要があります。
ユーザーとゲームの相互作用の流れは以下の通り:
- 無許可のユーザーがゲームを開始します。
- ゲームは、セッション情報とユーザーを関連付けます。
- 一定時間が経過すると、ゲームを続けるためにユーザー登録を求められます。
- ゲームは、渡されたセッション情報を含む登録リクエストをエクソーラログインサーバーに送信します。
- エクソーラログインサーバはユーザを登録します。登録の結果、ユーザーJWTにはセッションに関する情報が渡されます。
- ゲームは登録したユーザーに進行状況を転送します。
- ユーザーは許可された通りにプレイを続けます。
お知らせ
ユーザーのセッションに関する情報として、ユーザーの進行状況に関する情報が記載されたセッション識別子またはJSON文字列が渡されます。
使用に適した方
ログインがすでに統合されており、ブラウザゲームを持っているパートナー。
入手方法
ゲームに登録した後のユーザーの進行状況を保存するには:
ユーザのセッションの情報を渡す
ユーザーのセッションに関する情報の受け渡しは、ログイン統合に依存します:
ログインAPI経由で統合する
payload
パラメータを
リクエストの例(ユーザのセッションの識別子):
Copy
http
- http
- curl
1POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
2Content-Type: application/json
3
4{
5 "username": "John Smith",
6 "password": "123456",
7 "email": "john-email@email.com"
8}
1curl --request POST \
2 --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
3 --header 'content-type: application/json' \
4 --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'
リクエストの例(ユーザーの進捗情報が記載されたJSON文字列):
Copy
http
- http
- curl
1POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2} HTTP/1.1
2Content-Type: application/json
3
4{
5 "username": "John Smith",
6 "password": "123456",
7 "email": "john-email@email.com"
8}
1curl --request POST \
2 --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=%7B%22coins%22%3A120%2C%22lvl%22%3A2%7D' \
3 --header 'content-type: application/json' \
4 --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'
ログインウィジェット経由で統合する
payload
パラメータをウィジェット初期化コードに追加します。このパラメータの値として、ユーザーのセッションに関する情報を指定します。
ウィジェットの初期化コードの例(ユーザーのセッションの識別子):
Copy
- html
1<script>
2const xl = new XsollaLogin.Widget({
3 projectId: '00000000-0000-0000-0000-000000000000',
4 preferredLocale: 'en_US',
5 callbackUrl: 'https://example.com',
6 payload: 'my_session_123'
7});
8</script>
ウィジェットの初期化コードの例(ユーザーの進行状況を示すJSON文字列):
Copy
- html
1<script>
2const xl = new XsollaLogin.Widget({
3 projectId: '00000000-0000-0000-0000-000000000000',
4 preferredLocale: 'en_US',
5 callbackUrl: 'https://example.com',
6 payload: '{"coins":120,"lvl":2}'
7});
8</script>
ゲームの進行状況をユーザーに転送する
登録後、ユーザーJWTのpayload
クレームにユーザーのセッションに関する情報が渡されます。この情報を使用して、セッション中に受信した進捗状況を転送します。登録されたユーザーの識別子は、ユーザーJWTのsub
クレームで確認できます。
JWT
Copy
- json
1{
2 "email": "john-email@email.com",
3 "exp": 1597904900,
4 "iat": 1597818500,
5 "is_master": true,
6 "iss": "https://login.xsolla.com",
7 "payload": "my_session_123",
8 "promo_email_agreement": true,
9 "publisher_id": 0,
10 "sub": "00000000-0000-0000-0000-000000000000",
11 "type": "xsolla_login",
12 "username": "John Smith",
13 "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
14 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
15}
JWT
Copy
- json
1{
2 "email": "john-email@email.com",
3 "exp": 1597904900,
4 "iat": 1597818500,
5 "is_master": true,
6 "iss": "https://login.xsolla.com",
7 "payload": "{\"coins\":120,\"lvl\":2}",
8 "promo_email_agreement": true,
9 "publisher_id": 0,
10 "sub": "00000000-0000-0000-0000-000000000000",
11 "type": "xsolla_login",
12 "username": "John Smith",
13 "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
14 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
15}
この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。