https://login.xsolla.com/api
Dieser Abschnitt beschreibt API-Aufrufe für die Arbeit mit Login. Konfigurieren Sie Ihr Login-Projekt im Kundenportal, bevor Sie Anfragen senden.
Die API-Definition steht in zwei Formaten zum Download bereit:
Im Kundenportal haben Sie Zugriff auf die folgenden Login-Projekttypen:
Weitere Informationen dazu finden Sie unter Plattformübergreifendes Konto.
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.
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.
Ist eine Plattform zur Distribution von Spielen (z. B. Steam, PlayStation, Xbox usw.).
Die Login API unterstützt die folgenden Tokentypen:
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.
So rufen Sie ein Servertoken ab:
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
ist der JWT-Typ, übermitteln Sie den Wert client_credentials
.client_secret
ist der geheime Schlüssel, den Sie beim Einrichten des OAuth
2.0-Serverclients erhalten haben.client_id
ist die Client-ID, die Sie beim Einrichten des OAuth
2.0-Serverclients erhalten haben.Jeder Token hat ein JWT-Format und enthält eine bestimmte Information in einer Payload.
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.
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:
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:
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 ist standardmäßig eingestellt.
So fügen Sie die Funktion der Registrierungsmaske des Login-Widgets hinzu:
|
|
connection_information |
String | Zeigt an, ob der Benutzer sein Geburtsdatum bestätigt hat oder nicht. Die Bestätigung erfolgt über den Dienst okname. |
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 |
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. |
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 |
Daten beliebigen Typs, die von Ihrem Server während der Authentifizierung im Antwortrumpf zurückgegeben werden. |
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. |
Claims, die nach der OAuth 2.0-Authentifizierung im Token enthalten sind.
Claim | Typ | Erforderlich | Beschreibung |
jti |
String | Ja | Eindeutige Token-ID. |
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. |
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:
Jede Gruppe wird im folgenden Format geschrieben:
|
jti |
String | Ja | Eindeutige Token-ID. |
Nach erfolgreicher Authentifizierung wird für jeden Benutzer ein JWT generiert. Der generierte JWT wird mit einem geheimen Schlüssel signiert. Um sicherzustellen, dass ein JWT relevant ist und dem Benutzer Ihres Login-Projekts gehört, sollten Sie seinen Wert validieren.
So validieren Sie einen JWT:
Hinweis
Geben Sie Ihren geheimen Schlüssel niemals weiter. Falls er kompromittiert wurde, aktualisieren Sie ihn bitte.
Bei Fehlermeldungen gibt der Xsolla-Login-Server ein JSON-Objekt mit den folgenden Feldern zurück:
Feld | Typ | Beschreibung |
code | String | Fehlercode des Xsolla-Login-Servers. |
Beschreibung | String | Fehlerbeschreibung. Der Text ist immer in Englisch. Verwenden Sie diesen Text nicht im Falle eines Fehlers, da sich der Wert in Zukunft ändern kann. |
{
"error": {
"code": "000-000",
"description": "description"
}
}
Code | Beschreibung |
0 | Anfrage enthält ungültige Parameter. |
010–019 | Client-Authentifizierung fehlgeschlagen (z. B. unbekannter Client, keine Client-Authentifizierung enthalten oder nicht unterstützte Authentifizierungsmethode). |
010–022 | Parameterstatus fehlt oder ist zu schwach, weil er weniger als 8 Zeichen umfasst. |
010–023 | Die Autorisierungserlaubnis oder der Aktualisierungstoken ist ungültig, ist abgelaufen, wurde widerrufen, stimmt nicht mit der in der Autorisierungsanfrage verwendeten Weiterleitungs-URI überein oder wurde für einen anderen Client ausgestellt. |
Code | Beschreibung |
003–002 | Benutzer nicht gefunden. |
003–019 | Projekt nicht gefunden. |
003–061 | Objekt nicht gefunden. |
Code | Beschreibung |
0 | In der Abfrage fehlt der Nickname. |
002–050 | Die Benutzereinstellungen für die Zwei-Faktor-Authentifizierung wurden nicht geändert. |
003–003 | Benutzer mit dem angegebenen Benutzernamen existiert bereits. |
003–020 | Aufruf für dieses Login-Projekt nicht verfügbar. |
003–022 | Dieses Login-Projekt ist falsch konfiguriert. Ändern Sie die Login-Projekteinstellungen im Xsolla-Kundenportal oder wenden Sie sich an Ihren Account Manager. |
003–033 | Projekttyp falsch zugeordnet. |
006–003 | OAuth 2.0-Clients mit dem Grant-Typ client_credentials dürfen nur eine Zugriffsliste besitzen. |
010–015 | Authentifizierung über soziales Netzwerk fehlgeschlagen: SERVICE_NAME. |
010–016 | Dieses Social-Media-Konto ist bereits mit einem anderen Benutzer verknüpft. |
010–032 | Die Authentifizierung über dieses soziale Netzwerk ist bei diesem Login-Projekt nicht aktiviert. Aktivieren Sie die Option unter Xsolla-Kundenportal > Login > Ihr Login-Projekt > Social-Media-Einbindung. |
030–024 | Passwort zurücksetzen ist bei diesem Login-Projekt deaktiviert. |
2002–0001 | Attribute doppelt vorhanden. |