Benutzerdefinierter Nutzerdatenspeicher
Falls Sie den benutzerdefinierten Nutzerdatenspeicher verwenden, fungiert Xsolla Login als Vermittler, und alle Benutzeridentifikationsdaten werden auf Ihrer Seite gespeichert. Xsolla Login übergibt die Authentifizierungsdaten in einem Token, das in der Kopfzeile von Webhooks und in deren Bodys enthalten ist.
- Benutzerregistrierung
- Authentifizierung über Benutzername und Passwort
- passwortlose Authentifizierung über eine E-Mail-Adresse
- Authentifizierung über soziale Netzwerke
- Zurücksetzen von Benutzerpasswörtern
POST
-Anfragen von Xsolla keine URLs wie z. B. http://localhost:3000/my-webhook-endpoint
erreichen. Mit Ngrok können Sie einen Tunnel für den externen Zugriff anlegen und so Anfragen von Xsolla lokal empfangen. Weitere Informationen hierzu finden Sie in der ngrok-Dokumentation.
Wenn Sie die Integration lokal testen, können POST
-Anfragen von Xsolla keine URLs wie z. B. http://localhost:3000/my-webhook-endpoint
erreichen. Mit Ngrok können Sie einen Tunnel für den externen Zugriff anlegen und so Anfragen von Xsolla lokal empfangen. Weitere Informationen hierzu finden Sie in der ngrok-Dokumentation.Interaktionsablauf
Sie können das Login-Widget oder Ihre Anwendung, die die Login API-Aufrufe nutzt, als Client einsetzen. Die Interaktion zwischen dem Client und dem Xsolla-Login-Server läuft wie folgt ab:
- Der Client sendet Anfragen an den Xsolla-Login-Server. Das Anfrageformat ist in den Endpunkten JWT und Password erläutert.
- Der Xsolla-Login-Server sendet Webhooks an Ihren Server. Der Header enthält einen Server-JWT mit dem Parameter
“request_type”: “gateway_token”
. Befolgen Sie die Anleitun, um die Tokenvalidierung einzurichten. Ein Teil der Benutzeridentifikationsdaten wird im Body des Webhooks übermittelt. - Um den Empfang der Benutzeridentifikationsdaten des Webhook, muss Ihr Server folgendes zurückgeben: bei erfolgreicher Antwort den HTTP Code
200
,201
, oder204
.- Den HTTP Code
400
mit der Beschreibung des Problems, wenn der angegebene Benutzer nicht gefunden oder eine ungültige Signatur übermittelt wurde. Ihr Webhook-Handler könnte auch den HTTP Code5xx
zurücksenden, sollten vorübergehende Probleme auf Ihrem Server vorkommen.
- Der Xsolla-Login-Server verarbeitet eine Antwort von Ihrem Server und sendet den Autorisierungstoken an den Client zurück.
- Der Client verarbeitet die Antwort.
Wenn Sie nach der Benutzeridentifikation Benutzerinformationen zum JWT hinzufügen möchten, senden Sie ein JSON-Objekt mit einem beliebigen Satz von Parametern im Body der Antwort. Dieses Objekt wird im Feld partner_data
auf dem JWT gespeichert.
- E-Mail-Adresse
- Geburtsdatum
- Vorname
- NAchname
- Benutzer-ID auf Ihrem Server
Parameter | Typ | Beschreibung |
---|---|---|
attr_type | string | Festlegung der Zugriffsebene eines Benutzers für dessen Zugriff auf Dienstattribute:
|
key | string | Der Attributname, anhand dem das Benutzerattribut identifiziert wird. Muss für jeden Benutzer eindeutig sein. Maximale Länge: 256 Zeichen. Ziffern, lateinische Buchstaben, Bindestriche und Unterstriche sind zulässig. |
permission | String oder null | Die Art und Weise, wie auf die Benutzerattribute zugegriffen wird, wirkt sich auf die Liste der von den Methoden zurückgegebenen Attribute aus:
Mögliche Werte: public , private (Standard). |
read_only | string | Ob das Attribut vor Änderungen geschützt ist. Standardmäßig ist false voreingestellt, und das Ändern von Attributwerten ist erlaubt. |
value | string | Der Wert des Benutzerattributs. Maximal Länge: 256 Zeichen. |
Benutzerregistrierung
- Der Client sendet die Anfrage
Register new user POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Der Abfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Body-Parameter.
username
- Benutzername. Erlaubte Länge: 3-255 Zeichen.password
- Benutzerpasswort. Erlaubte Länge: 6-100 Zeichen.email
- Die E-Mail-Adresse des Benutzers. Erlaubte Länge: 1-255 Zeichen.
- Der Abfrageparameter
- Der Xsolla-Login-Server sendet einen Webhook an die URL des neuen Benutzers. Die Antwort muss dem im Interaktionsablauf angegebenen Format entsprechen. In der Antwort können Sie eine Liste von Benutzerattributen und/oder ein erforderliches JSON-Objekt angeben. Das von Ihnen in der Antwort angegebene JSON-Objekt wird im Feld
partner_data
des Benutzer-JWT aufgezeichnet.
Beispiel eines Webhook:
http
- http
- curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_registration_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Beispiel einer Antwort auf einen Webhook mit Benutzerattributen:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
Beispiel einer Antwort auf ein Webhook mit einem JSON-Objekt:
- json
1{
2 "id": 123456,
3 "role": "scout"
4}
- Nutzerdaten werden in die Xsolla-Datenbank geschrieben, während der Parameter
email
als "unbestätigt" gekennzeichnet wird. Der Benutzer erhält eine E-Mail zur Kontobestätigung. - Wenn Sie das Login-Widget integriert haben, wird der Benutzer zur Seite weitergeleitet. Dabei wird ihm folgende Meldung angezeigt: Bitte bestätigen Sie Ihr Konto gemäß den Anweisungen, die wir Ihnen per E-Mail an {email} gesendet haben.
- Auch bei einer fehlgeschlagenen Benutzerregistrierung können Sie eine Fehlermeldung im Authentifizierungs-Widget anzeigen. Übermitteln Sie dazu in der Antwort auf die Anfrage zur Benutzererstellung das Objekt
error
mit den folgenden Details:- Legen Sie im Parameter
code
einen Fehlercodefest, zum Beispiel den Wert011-002
. - Geben Sie im Parameter
description
den Fehlermeldungstext an.
- Legen Sie im Parameter
- json
1{
2 "error": {
3 "code": "011-002",
4 "description": "<string>"
5 }
6}
Authentifizierung über Benutzername und Passwort
- Der Client sendet die Anfrage
Auth by username and password POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Der Abfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Body-Parameter.
username
- Benutzername. Erlaubte Länge: 3-255 Zeichen.password
- Benutzerpasswort. Erlaubte Länge: 6-100 Zeichen.
- Der Abfrageparameter
- Der Xsolla-Login-Server sendet einen Webhook an die URL für die Benutzerverifizierung. Die Antwort muss dem in diesem Interaktionsablauf angegebenen Format entsprechen. In der Antwort können Sie eine Liste von Benutzerattributen und/oder ein erforderliches JSON-Objekt angeben. Das von Ihnen in der Antwort angegebene JSON-Objekt wird im Feld
partner_data
des Benutzer-JWT aufgezeichnet.
Beispiel eines Webhooks für die URL zur Benutzerverifizierung:
http
- http
- curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"j.smith@email.com",
7 "password":"123456",
8 "username":"j.smith@email.com"
9}
1curl --request POST \
2 --url 'https://your.hostname/your_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Beispiel einer Antwort auf einen Webhook mit Benutzerattributen:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
Beispiel einer Antwort auf ein Webhook mit einem JSON-Objekt:
- json
1{
2 "id": 123456,
3 "role": "scout"
4}
- Sollte die Benutzerauthentifizierung fehlschlagen, können Sie eine Fehlermeldung angeben, die im Authentifizierungs-Widget angezeigt wird. Dazu übermitteln Sie in der Antwort auf die Anfrage zur Benutzererstellung das Objekt
error
mit folgenden Angaben:- Im Parameter
code
legen Sie einen Fehlercode fest, zum Beispiel den Wert011-002
. - Im Parameter
description
geben Sie den Text der Fehlermeldung ein.
- Im Parameter
- Der Xsolla-Login-Server generiert einen Benutzer-JWT.
- Der Benutzer wird mit dem Abfrageparameter
token
zurlogin_url
weitergeleitet. Der Parametertoken
enthält den Benutzer-JWT.
Passwortlose Authentifizierung über eine Telefonnummer
- Der Client öffnet ein Authentifizierungsformular, damit der Benutzer seine Telefonnummer eingeben kann.
- Der Benutzer gibt seine Telefonnummer ein.
- Der Client sendet die Anfrage
Start auth by phone number POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Den Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Den Body-Parameter
phone_number
- Die Telefonnummer des Benuters.
- Den Anfrageparameter
- Der Client zeigt ein Feld, damit der Benutzer den Verifizierungscode eingeben kann.
- Der Benutzer gibt den erhaltenen Verifizierungscode ein.
- Der Client sendet die Anfrage
Complete auth by phone number POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Der Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Die Body-Parameter:
code
- Bestätigungscode.phone_number
- die Telefonnummer des Benutzers.operation_id
- ID des Bestätigungscodes.
- Der Anfrageparameter
- Wenn sich der Benutzer erstmalig autorisiert, sendet der Xsolla-Login-Server ein Webhook an die URL für eine passwortlose Anmeldung. Die Antwort muss dem in diesem Integrationsablauf beschriebenen Format entsprechen. In der Antwort können Sie eine Liste von Benutzerattributen oder ein erforderliches JSON-Objekt angeben. Das von Ihnen in der Antwort angegebene JSON-Objekt wird im Feld
partner_data
des Benutzer-JWT aufgezeichnet. - Sollte die Benutzerauthentifizierung fehlschlagen, können Sie eine Fehlermeldung angeben, die im Authentifizierungs-Widget angezeigt wird. Dazu übermitteln Sie in der Antwort auf die Anfrage zur Benutzererstellung das
error
-Objekt mit folgenden Angaben:- Im Parameter
code
legen Sie einen Fehlercode fest, zum Beispiel den Wert011-002
. - Im Parameter
description
geben Sie den Text der Fehlermeldung ein.
- Im Parameter
http
- http
- curl
1POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "login": "+12025550140",
7 "type": "phone"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_phone_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"login":"+12025550140","type":"phone"}'
Beispiel einer Antwort auf einen Webhook mit Benutzerattributen:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
Beispiel einer Antwort auf ein Webhook mit einem JSON-Objekt:
- json
1{
2 "id": 123456,
3 "role": "scout"
4}
Passwortlose Authentifizierung über E-Mail
- Der Client öffnet ein Authentifizierungsformular, damit der Benutzer seine E-Mail-Adresse eingeben kann.
- Der Benutzer gibt seine E-Mail-Adresse ein.
- Der Client sendet die Anfrage
Start auth by email POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Den Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Den Body-Parameter
email
- Die E-Mail-Adresse des Benutzers.
- Den Anfrageparameter
- Der Client zeigt ein Feld, damit der Benutzer den Verifizierungscode eingeben kann.
- Der Benutzer gibt den erhaltenen Verifizierungscode ein.
- Der Client sendet die Anfrage
Complete auth by email POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Der Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Die Body-Parameter:
username
- Benutzername. Erlaubte Länge: 3 bis 255 Zeichen.code
- Bestätigungscodeemail
- E-Mail-Adresse des Benutzersoperation_id
- ID des Bestätigungscodes
- Der Anfrageparameter
- Wenn sich der Benutzer erstmalig autorisiert, sendet der Xsolla-Login-Server ein Webhook an die URL für eine passwortlose Anmeldung. Die Antwort muss dem in diesem Integrationsablauf beschriebenen Format entsprechen. In der Antwort können Sie eine Liste von Benutzerattributen oder ein erforderliches JSON-Objekt angeben. Das von Ihnen in der Antwort angegebene JSON-Objekt wird im Feld
partner_data
des Benutzer-JWT aufgezeichnet.. - Sollte die Benutzerauthentifizierung fehlschlagen, können Sie eine Fehlermeldung angeben, die im Authentifizierungs-Widget angezeigt wird. Dazu übermitteln Sie in der Antwort auf die Anfrage zur Benutzererstellung das Objekt
error
mit folgenden Angaben:- Im Parameter
code
legen Sie einen Fehlercode fest, zum Beispiel den Wert011-002
. - Im Parameter
description
geben Sie den Text der Fehlermeldung ein.
- Im Parameter
Beispiel eines Webhook:
http
- http
- curl
1POST https://your.hostname/your_email_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email": "user@mail.com",
7 "type": "email"
8}
1curl --request POST \
2 --url 'https://your.hostname/your_email_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email": "user@mail.com","type": "email"}'
Beispiel einer Antwort auf einen Webhook mit Benutzerattributen:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
Beispiel einer Antwort auf ein Webhook mit einem JSON-Objekt:
- json
1{
2 "id": 123456,
3 "role": "scout"
4}
Authentifizierung über soziale Netzwerke
Geben Sie die URL für die Anmeldung über soziales Netzwerk in den Einstellungen Ihres Login-Projekts im Kundenportal (unter Nutzerdatenbank > Speicher > Eigener Speicher) an, um Nutzerdaten bei der Authentifizierung über soziale Netzwerke abzurufen. An diese URL wird eine Anfrage mit den vom sozialen Netzwerk empfangenen Daten gesendet.
Authentifizierungsablauf:
- Der Client sendet die Anfrage
Auth via social network POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Den Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Den Pfadparameter
provider_name
- Name des sozialen Netzwerks, der mit dem Login im Kundenportal verknüpft ist. Das können Folgende sein:amazon
,apple
,babka
,baidu
,battlenet
,discord
,epicgames
,facebook
,github
,google
,kakao
,linkedin
,mailru
,microsoft
,msn
,naver
,ok
,paypal
,qq
,reddit
,steam
,twitch
,twitter
,vimeo
,vk
,wechat
,weibo
,xbox
,yahoo
,yandex
,youtube
.
- Den Anfrageparameter
- Der Benutzer meldet sich bei einem sozialen Netzwerk an.
- Der Xsolla Login-Server verarbeitet die vom sozialen Netzwerk empfangenen Nutzerdaten und sendet einen Webhook an die URL für die Anmeldung über soziales Netzwerk. Die Antwort muss dem in diesem Interaktionsablauf beschriebenen Format entsprechen. In der Antwort können Sie eine Liste von Benutzerattributen und/oder ein beliebiges erforderliches JSON-Objekt angeben. Das JSON-Objekt, dass Sie in der Antwort angeben, wird im Feld
partner_data
des Benutzer-JWT aufgezeichnet.
Benutzerdaten werden im Authorization
-Header als vorübergehender Gateway Token (ein Server Token mit “request_type”: “gateway_token”)
.
Hauptfelder des Gateway Token:
Claim | Typ | Beschreibung |
---|---|---|
exp | Unix Timestamp | Das Verfallsdatum und die Verfallsuhrzeit des JWT. Die JWT-Lebensspanne beträgt 7 Minuten. Erforderlich. |
iat | Unix Timestamp | Das Ausgabedatum und die Ausgabeuhrzeit des JWT. Erforderlich. |
iss | string | Der Dienst, der das JWT unterzeichnet hat https://login.xsolla.com . Erforderlich. |
request_type | string | Konstant: gateway_request . Erforderlich. |
xsolla_login_project_id | string (UUID) | Die ID Ihres Login-Projekts im Kundenportal. Erforderlich. |
string | E-Mail-Adresse des Benutzers. | |
sub | string (UUID) | Gespeicherte Benutzer-ID aufseiten des Xsolla Login-Servers. Erforderlich. |
username | string | Benutzername. |
provider | string | Name des für die Authentifizierung verwendeten sozialen Netzwerks. Erforderlich. |
id | string | Benutzer-ID im sozialen Netzwerk. Erforderlich. |
social_access_token | string | Zugriffstoken des sozialen Netzwerks, über das der Nutzer authentifiziert wurde. Wenden Sie sich an Ihren Customer Success Manager oder senden Sie eine E-Mail an csm@xsolla.com, wenn Sie diesen Claim übermitteln möchten. |
partner_data | string | Daten jeglicher Art, die von Ihrem Server im Antwortrumpf während der Authentifizierung zurückgegeben werden. Wenden Sie sich an Ihren Customer Success Manager oder senden Sie eine E-Mail an csm@xsolla.com, wenn Sie diesen Claim übermitteln möchten. |
- json
1{
2 "exp": 1573635020,
3 "iat": 1573634600,
4 "iss": "https://login.xsolla.com",
5 "request_type": "gateway_request",
6 "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
7 "sub": "00000000-0000-0000-0000-000000000000",
8 "email": "example@test.com",
9 "username": "Smith707",
10 "provider": "google",
11 "id": "123",
12}
Beispiel eines Webhooks für die URL für die Anmeldung über soziale Netzwerke:
http
- http
- curl
1POST https://your.hostname/your_social_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
1curl --request POST \
2 --url 'https://your.hostname/your_social_authentication_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json'
Beispiel einer Antwort auf einen Webhook mit Benutzerattributen:
- json
1{
2 "attributes": [
3 {
4 "attr_type": "server",
5 "key": "company",
6 "permission": "private",
7 "value": "facebook-promo"
8 },
9 {
10 "attr_type": "server",
11 "key": "custom-id",
12 "permission": "private",
13 "value": 48582
14 }
15 ]
16}
Beispiel einer Antwort auf ein Webhook mit einem JSON-Objekt:
- json
1{
2 "id": 123456,
3 "role": "scout"
4}
- Bei einer fehlgeschlagenen Benutzerregistrierung können Sie eine Fehlermeldung im Authentifizierungs-Widget anzeigen. Übermitteln Sie dazu in der Antwort auf die Anfrage zur Benutzererstellung das Objekt
error
mit den folgenden Angaben:- Geben Sie im Parameter
code
den Wert011-002
an. - Geben Sie im Parameter
description
den Fehlermeldungstext an.
- Geben Sie im Parameter
Benutzerpasswörter zurücksetzen
- Der Client sendet die Anfrage
Reset password POST
an den Xsolla-Login-Server. Die Anfrage muss den HeaderAuthorization: Bearer {JWT}
und die folgenden erforderlichen Parameter enthalten:- Der Anfrageparameter
projectId
- ID des Login-Projekts im Kundenportal. - Den Body-Parameter
username
- Benutzername. Erlaubte Länge: 3 bis 255 Zeichen.
- Der Anfrageparameter
- Der Xsolla-Login-Server sendet dem Benutzer eine Bestätigung über die Zurücksetzung des Passworts per E-Mail.
- Nachdem der Benutzer das Zurücksetzen des Passworts in der E-Mail bestätigt hat, wird er auf die entsprechende Seite weitergeleitet.
- Der Benutzer gibt ein neues Passwort ein.
- Der Xsolla-Login-Server sendet ein Webhook an die URL zum Zurücksetzen des Passworts.
- Sollte das Zurücksetzen des Kennworts fehlschlagen, können Sie eine Fehlermeldung angeben, die im Authentifizierungs-Widget angezeigt wird. Dazu übermitteln Sie in der Antwort auf die Anfrage zur Benutzererstellung das Objekt
error
mit folgenden Angaben:- Im Parameter
code
legen Sie einen Fehlercode fest, zum Beispiel den Wert011-002
. - Im Parameter
description
geben Sie den Text der Fehlermeldung ein.
- Im Parameter
URL-Webhook-Beispiel für das Zurücksetzen des Passworts:
http
- http
- curl
1POST https://your.hostname/your_reset_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "username": "john@gmail.com",
7 "fields": {
8 "password": "NewPa$$word1"
9 }
10}
1curl --request POST \
2 --url 'https://your.hostname/your_reset_uri' \
3 --header 'authorization: bearer_JWT' \
4 --header 'content-type: application/json' \
5 --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
Weitere Informationen
Nützliche Links
So verknüpfen Sie den kundenseitigen SpeicherHaben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.