Xsolla-logoXsolla Developers
oder
Zum Kundenportal

Überblick

Dieser Abschnitt beschreibt API-Aufrufe für die Arbeit mit Login. Konfigurieren Sie Ihr Login-Projekt im Kundenportal, bevor Sie Anfragen senden.

IP addresses

The full list of IP addresses that login.xsolla.com may use:

  • 34.94.0.85
  • 34.94.14.95
  • 34.94.25.33
  • 34.94.115.185
  • 34.94.154.26
  • 34.94.173.132
  • 34.102.48.30
  • 35.235.99.248
  • 35.236.32.131
  • 35.236.35.100
  • 35.236.117.164

API-Definition herunterladen

Die API-Definition steht in zwei Formaten zum Download bereit:

Begriffserläuterung

Im Kundenportal haben Sie Zugriff auf die folgenden Login-Projekttypen:

  • Standard-Login-Projekt
  • Schatten-Login-Projekt

Weitere Informationen dazu finden Sie unter Plattformübergreifendes Konto.

Ratenbegrenzungen

Are the restrictions applied by Xsolla API on the frequency of access by a user within a defined timeframe.

Standard-Login-Projekt

Ist ein Login-Projekt, das zum Speichern von Hauptkonten verwendet wird.

Schatten-Login-Projekt

Ist ein Login-Projekt, das zum Speichern von Plattformkonten verwendet wird.

Hauptkonto

Ist ein in einem Standard-Login-Projekt erstellter Kontotyp und wird mit Plattformkonten verknüpft. Das Hauptkonto dient dazu, Spieler auf verschiedenen Plattformen zu identifizieren.

Plattformkonto

Ist ein in einem Schatten-Login-Projekt erstellter Kontotyp und wird mit einer bestimmten Publishing-Plattform verknüpft. Das Plattformkonto lässt sich mit keinem weiteren Plattformkonto verknüpfen. Zudem können Sie die Verknüpfung zwischen einem solchen Konto und einem Hauptkonto nicht aufheben.

Publishing-Plattform

Ist eine Plattform zur Distribution von Spielen (z. B. Steam, PlayStation, Xbox usw.).

Authentifizierung

Die Login API unterstützt die folgenden Tokentypen:

Authentication schemes

Ob ein API-Aufruf client- oder serverseitig erfolgt, können Sie anhand des Authentifizierungsschemas feststellen:

  • Client-side — are called without authentication or with the Authorization header: Bearer <user_JWT> header, where <user_JWT> — is the user token.
  • Server-side API calls for implementing the user flow — are called with the header: X-SERVER-AUTHORIZATION: <server_JWT>, where <server_JWT> — is the server token.

Benutzertoken abrufen

Senden Sie eine der folgenden Anfragen, um den Token abzurufen:

Nach der JWT-Authentifizierung wird der Benutzer mithilfe eines Tokens in einem Abfrageparameter zur Rückruf-URL weitergeleitet: <Callback URL>?token=<User token (JWT)>.

Senden Sie nach der auf dem OAuth 2.0-Protokoll basierenden Authentifizierung die Anfrage JWT generieren an den Xsolla-Login-Server, um den empfangenen code-Parameter gegen einen Benutzertoken (access_token) zu tauschen.

Servertoken abrufen

So rufen Sie ein Servertoken ab:

  1. Richten Sie den OAuth 2.0-Serverclient ein.
  2. Generieren Sie den JWT.

OAuth 2.0-Serverclient einrichten

  1. Öffnen Sie Ihr Projekt im Kundenportal, und wechseln Sie zum Abschnitt Login.
  2. Klicken Sie beim gewünschten Login-Projekt auf Konfigurieren.
  3. Scrollen Sie zum Block Sicherheit, und wählen Sie OAuth 2.0 aus.
  4. Click Add OAuth 2.0 Client.
  5. Aktivieren Sie das Kontrollkästchen Server (Server-zu-Server-Verbindung).
  6. Legen Sie die Tokenlebensdauer fest.
  7. Klicken Sie auf Verknüpfen.
  8. Kopieren und speichern Sie die Client-ID und den geheimen Schlüssel.

Server-JWT generieren

Implementieren Sie im Backend Ihrer Anwendung eine Methode, um den Server-JWT mithilfe des API-Aufrufs JWT generieren abzurufen. Die Anfrage muss folgende Parameter enthalten:

  • grant_type is the type of getting JWT, pass the client_credentials value.
  • client_secret is the secret key that is received when you set up the server OAuth 2.0 client.
  • client_id is the client ID received when you set up the server OAuth 2.0 client.

Ratenbegrenzungen

To prevent Xsolla system overloads and protect against sudden spikes in incoming traffic, Xsolla limits the number of requests received by the Xsolla API within a specified period of time. If the limit is exceeded, the Xsolla API returns an HTTP response with the 429 status code.

Rate limits vary by method, IP-address, authentication scheme, and other factors.

Rate limits for server-side methods are applied to methods with server-side authentication — methods that are called with the X-SERVER-AUTHORIZATION: <server_JWT> header, where <server_JWT> is the server token.

Rate limits for client-side methods are applied to methods without authentication or with client-side authentication — methods that are called with the Authorization: Bearer <user_JWT> header, where <user_JWT> is the user token.

Example of a method with server-side authentication: Example of a 
method with server-side 
authentication Example of a method with client-side authentication: Example of a method with server-side 
authentication

Rate limits for client-side methods do not change and are necessary to prevent brute-force attacks. The maximum request rate for server-side methods is higher than for client-side methods. You can refer to the recommendations on how to manage rate limits in the documentation.

Note In certain cases, it is possible to adjust the rate limits by request. To request the rate limits adjustment, contact your Customer Success Manager or email csm@xsolla.com.

JWT-Struktur

Jeder Token hat ein JWT-Format und enthält eine bestimmte Information in einer Payload.

Benutzer-JWT

Ein Benutzer-JWT ist ein Token, der infolge einer Authentifizierung oder Registrierung empfangen wird. Eine Token-Payload enthält Informationen über den Benutzer und den Authentifizierungsaufruf.

Um einen Benutzertoken über das OAuth 2.0-Protokoll abzurufen, ist ein OAuth  2.0-Client erforderlich. Der Benutzertoken wird im Header Authorization: Bearer <JWT> übermittelt.

Wichtige Claims

Nach der Authentifizierung oder Bestätigung der E-Mail-Adresse enthält ein Token die wichtigsten Claims. Ob diese Claims vorhanden sind, hängt nicht von der Nutzerdatenbank und dem Authentifizierungsaufruf ab.

 
Claim Typ Erforderlich Beschreibung
exp Unix-Zeitstempel Ja Datum und Uhrzeit des Tokenverfalls. Die Standardverfallszeit beträgt 24 Stunden. Sie können die Verfallszeit für jedes Login-Projekt individuell festlegen.
iss String Ja Dienst, der den Token signiert hat: https://login.xsolla.com.
iat Unix-Zeitstempel Ja Datum und Uhrzeit der Tokenübermittlung.
sub String (UUID) Ja Aufseiten des Xsolla-Login-Servers geschriebene Benutzer-ID.
groups Array Ja

Liste der Gruppen, denen der Benutzer zugeordnet ist. Jede Gruppe wird in dem folgendem Format geschrieben:

  • id – Gruppen-ID
  • name – Gruppenname
  • is_default – ob es sich um eine Standardgruppe handelt oder nicht (true oder false).

Es kann nur eine Standardgruppe geben. Diese Gruppe umfasst zunächst alle Benutzer, bevor diese verschiedenen Gruppen zugeordnet werden.

xsolla_login_project_id String (UUID) Ja Login-Projekt-ID.
type String

Authentifizierungsoption:

  • xsolla_login – Anmeldung über Benutzername/E-Mail-Adresse und Passwort
  • social – Anmeldung über soziale Netzwerke
  • email – passwortlose Anmeldung über einen per E-Mail erhaltenen Einmalcode.
  • phone – passwortlose Anmeldung über einen per SMS erhaltenen Einmalcode.
  • firebase – Anmeldung über Benutzername/E-Mail-Adresse und Passwort, wenn die Nutzerdaten bei Firebase gespeichert sind.
  • playfab – Anmeldung über Benutzername/E-Mail-Adresse und Passwort, wenn die Nutzerdaten bei PlayFab gespeichert sind.
  • proxy — Anmeldung über Benutzername/E-Mail-Adresse und Passwort, wenn die Nutzerdaten im eigenen Speicher gespeichert sind.
  • device – Anmeldung mit Geräte-ID.
  • server_custom_id – Anmeldung mit selbst definierter ID.

Es kann nur eine Standardgruppe geben. Diese Gruppe umfasst zunächst alle Benutzer, bevor diese verschiedenen Gruppen zugeordnet werden.

avatar String Benutzer-Avatar-URL.
username String Benutzername.
publisher_id Integer ID eines Händlers, dem ein Login-Projekt gehört.
email String E-Mail-Adresse des Benutzers.
payload String Zusätzliche Informationen, die während der Authentifizierung im Payload-Parameter übermittelt werden.
promo_email_agreement boolesch

Folgende Werte sind möglich:

  • true, wenn der Benutzer dem Erhalt eines Newsletters zustimmt.
  • andernfalls false.
true ist standardmäßig eingestellt.

So fügen Sie die Funktion der Registrierungsmaske des Login-Widgets hinzu:

  • Wenden Sie sich an Ihren Account Manager, wenn Sie das Widget 2.0 verwenden.
  • Fügen Sie den Parameter fields mit dem Wert promo_email_agreement in den Initialisierungscode ein, wenn Sie eine vorherige Version des Widgets verwenden.

connection_information String Zeigt an, ob der Benutzer sein Geburtsdatum bestätigt hat oder nicht. Die Bestätigung erfolgt über den Dienst okname.

PlayFab-Speicher

Claims, die nach der Authentifizierung im Token enthalten sind, sofern Sie den PlayFab-Speicher verwenden.

Claim Typ Erforderlich Beschreibung
external_account_id String Ja PlayFab-ID des Benutzers.
session_ticket String Ja

Ein während einer Authentifizierungsanfrage oder während Anfragen an die PlayFab API empfangener SessionTicket-Parameter.

Ein Token enthält diesen Claim, wenn Sie Benutzer über das OAuth 2.0-Protokoll authentifizieren und dabei den Wert playfab an den Parameter scope übermitteln.

entity_token String Ja Ein EntityToken.EntityToken-Parameter.
entity_type String Ja Ein EntityToken.Entity.Type-Parameter. Einzig möglicher Wert:title_player_account.
entity_id String Ja Ein EntityToken.Entity.Id-Parameter.

Eigener Speicher

Claims, die nach der Authentifizierung im Token enthalten sind, sofern Sie einen eigenen Speicher verwenden.

Claim Typ Erforderlich Beschreibung
provider String Ja Name des sozialen Netzwerks, das zur Authentifizierung verwendet wird. Wenn sich der Benutzer über einen Benutzernamen und ein Passwort authentifiziert, hat der Claim den Wert xsolla.
external_account_id String Benutzer-ID aufseiten Ihres Servers.
partner_data Data of any type returned by your server in the response body during authentication. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com
social_access_token Access token of the social network through which the user was authenticated. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com.

Authentifizierung über soziale Netzwerke

Claims, die nach der Authentifizierung über ein soziales Netzwerk im Token enthalten sind. Ob diese Claims vorhanden sind, hängt nicht von der Nutzerdatenbank ab.

Claim Typ Erforderlich Beschreibung
provider String Ja Name des zur Authentifizierung verwendeten sozialen Netzwerks.
id String Ja Benutzer-ID im sozialen Netzwerk.
is_cross_auth boolesch Zeigt an, dass die Stille-Authentifizierung-Anfrage läuft.
social_access_token String Der zur Authentifizierung genutzte access_token-Parameter des Social-Media-Kontos. Wenden Sie sich an Ihren Account Manager, um die Funktion einzurichten.
picture String (URL) Link zum Profilbild des Benutzers in einem sozialen Netzwerk.
birthday Datum (RFC3339) Geburtsdatum des Benutzers in einem sozialen Netzwerk.
gender String Geschlecht des Benutzers in einem sozialen Netzwerk.
name String Nickname des Benutzers in einem sozialen Netzwerk.

Authentifizierung über das OAuth 2.0-Protokoll

Claims, die nach der OAuth 2.0-Authentifizierung im Token enthalten sind.

Claim Typ Erforderlich Beschreibung
jti String Ja Eindeutige Token-ID.

Authentifizierung über eine Telefonnummer

Claim, der nach der Authentifizierung über eine Telefonnummer im Token enthalten ist.

Claim Typ Erforderlich Beschreibung
phone_number String Ja Die zur Authentifizierung verwendete Telefonnummer des Benutzers. Das Telefonnummernformat setzt sich zusammen aus Landesvorwahl, nationaler Vorwahl und Anschlusskennung ohne Trennzeichen.

Server-JWT

Der Servertoken wird im X-SERVER-AUTHORIZATION-Header übermittelt.

Die Token-Payload enthält Informationen über Ressourcen, die dem OAuth  2.0-Client gehören. Der Token kann auf diese Ressourcen durch Aufrufe mit serverbasierter Authentifizierung zugreifen.

Claim Typ Erforderlich Beschreibung
xsolla_login_project_id String (UUID) Ja ID eines Login-Projekts, das dem OAuth 2.0-Client gehört.
resources Array Ja

Liste der Ressourcen, die einem OAuth 2.0-Client gehören. Mögliche Ressourcentypen:

  • publisher_id – Ressourcen eines Händlers, dem das Login-Projekts gehört
  • publisher_project_id – Ressourcen eines Projekts im Kundenportal.

Jede Gruppe wird im folgenden Format geschrieben:

  • name – Ressourcentyp
  • value – Ressourcen-ID

jti String Ja Eindeutige Token-ID.

JWT-Validierung

To validate the JWT, use the following Login API calls:

Hinweis

Geben Sie Ihren geheimen Schlüssel niemals weiter. Falls er kompromittiert wurde, aktualisieren Sie ihn bitte.

Fehler

Refer to the documentation for information about Xsolla Login API errors.