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:

  1. Der nicht autorisierte Benutzer startet das Spiel.
  2. Das Spiel verknüpft den Benutzer mit Sitzungsdaten.
  3. Nach einer bestimmten Zeit bittet das Spiel den Benutzer, sich zu registrieren, um fortfahren zu können.
  4. Das Spiel sendet eine Registrierungsanfrage samt Sitzungsdaten an den Xsolla-Login-Server.
  5. Der Xsolla-Login-Server registriert den Benutzer. Infolge der Registrierung werden die Sitzungsdaten im Benutzer-JWT übermittelt.
  6. Das Spiel überträgt den Fortschritt an den registrierten Benutzer.
  7. Der autorisierte Benutzer setzt das Spiel fort.

Note
Die Sitzungskennung bzw. der JSON-String mit den Daten über den Spielfortschritt des Benutzers wird in Form von Benutzersitzungsdaten übermittelt.

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:

  1. Übermitteln Sie die Benutzersitzungsdaten bei der Registrierung.
  2. Ü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 Register new user. Geben Sie Die Benutzersitzungsdaten als Wert für diesen Parameter an.

Anfragebeispiel (Benutzersitzungskennung):

Copy
Full screen
Small screen
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):

Copy
Full screen
Small screen
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):

Copy
Full screen
Small screen
<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):

Copy
Full screen
Small screen
<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 payload (Benutzersitzungskennung):

Copy
Full screen
Small screen
{
  "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 payload (JSON-String mit Daten über den Fortschritt des Benutzers):

Copy
Full screen
Small screen
{
  "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"
}

War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Diese Seite bewerten
Diese Seite bewerten
Gibt es etwas, das wir verbessern können?

Jetzt nicht

Vielen Dank für Ihr Feedback!
Letztmalig aktualisiert: 12. April 2021

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!