Verzögerte Registrierung in Browsergames
So funktioniert's
Der Benutzer kann ein Spiel im Browser ohne Registrierung starten. Nach einer bestimmten Zeit wird der Benutzer aufgefordert, sich zu registrieren. Dadurch wird sein Fortschritt im Spiel gespeichert. Die Zeit bis zur Registrierungsaufforderung muss aufseiten des Spiels implementiert werden.
Der Ablauf der Interaktion zwischen Spieler und Spiel sieht wie folgt aus:
- Der nicht autorisierte Benutzer startet das Spiel.
- Das Spiel verknüpft den Benutzer mit Sitzungsdaten.
- Nach einer bestimmten Zeit bittet das Spiel den Benutzer, sich zu registrieren, um fortfahren zu können.
- Das Spiel sendet eine Registrierungsanfrage samt Sitzungsdaten an den Xsolla Login-Server.
- Der Xsolla Login-Server registriert den Benutzer. Infolge der Registrierung werden die Sitzungsdaten im Benutzer-JWT übermittelt.
- Das Spiel überträgt den Fortschritt an den registrierten Benutzer.
- Der autorisierte Benutzer setzt das Spiel fort.
Für wen ist es
Partner, die bereits Login integriert haben und Browsergames besitzen.
Wie komme ich dazu
So speichern Sie den Spielfortschritt des Benutzers nach dessen Registrierung:
- Übermitteln Sie die Benutzersitzungsdaten bei der Registrierung.
- Übertragen Sie den Spielfortschritt an den Benutzer.
Benutzersitzungsdaten übermitteln
Die Übermittlung der Benutzersitzungsdaten hängt von der Login-Integration ab:Integration über die Login API
Übermitteln Sie den Parameter payload
an die Anfrage
Anfragebeispiel (Benutzersitzungskennung):
http
- http
- curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
Content-Type: application/json
{
"username": "John Smith",
"password": "123456",
"email": "john-email@email.com"
}
curl --request POST \
--url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
--header 'content-type: application/json' \
--data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'
Anfragebeispiel (JSON-String mit Daten über den Fortschritt des Benutzers):
http
- http
- curl
POST 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
Content-Type: application/json
{
"username": "John Smith",
"password": "123456",
"email": "john-email@email.com"
}
curl --request POST \
--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' \
--header 'content-type: application/json' \
--data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'
Integration über Login-Widget
Fügen Sie dem Initialisierungscode des Widgets den Parameter payload
hinzu. Geben Sie die Benutzersitzungsdaten als Wert für diesen Parameter an.
Beispielhafter Widget-Initialisierungscode (Benutzersitzungskennung):
- html
<script>
const xl = new XsollaLogin.Widget({
projectId: '00000000-0000-0000-0000-000000000000',
preferredLocale: 'en_US',
callbackUrl: 'https://example.com',
payload: 'my_session_123'
});
</script>
Beispielhafter Widget-Initialisierungscode (JSON-String mit Daten über den Fortschritt des Benutzers):
- html
<script>
const xl = new XsollaLogin.Widget({
projectId: '00000000-0000-0000-0000-000000000000',
preferredLocale: 'en_US',
callbackUrl: 'https://example.com',
payload: '{"coins":120,"lvl":2}'
});
</script>
Spielfortschritts an den Benutzer übertragen
Nach erfolgter Registrierung werden die Benutzersitzungsdaten im Anspruch payload
des Benutzer-JWT übermittelt. Mit diesen Daten können Sie den während der Sitzung erreichten Fortschritt übertragen. Die Kennung des registrierten Benutzers finden Sie im Anspruch sub
des Benutzer-JWT.
Beispielhafter JWT
- json
{
"email": "john-email@email.com",
"exp": 1597904900,
"iat": 1597818500,
"is_master": true,
"iss": "https://login.xsolla.com",
"payload": "my_session_123",
"promo_email_agreement": true,
"publisher_id": 0,
"sub": "00000000-0000-0000-0000-000000000000",
"type": "xsolla_login",
"username": "John Smith",
"xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
"xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}
Beispielhafter JWT
- json
{
"email": "john-email@email.com",
"exp": 1597904900,
"iat": 1597818500,
"is_master": true,
"iss": "https://login.xsolla.com",
"payload": "{\"coins\":120,\"lvl\":2}",
"promo_email_agreement": true,
"publisher_id": 0,
"sub": "00000000-0000-0000-0000-000000000000",
"type": "xsolla_login",
"username": "John Smith",
"xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
"xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.