OAuth 2.0-Protokoll
Überblick
Das Login-Produkt unterstützt das OAuth 2.0-Standardprotokoll für die Benutzerregistrierung und ‑authentifizierung. Das OAuth 2.0-Standardautorisierungsprotokoll vereinfacht die Entwicklung von Client-Anwendungen und ermöglicht es Ihnen, Zugriffstoken ohne Zutun der Benutzer zu aktualisieren. Ausführliche Informationen über das OAuth 2.0-Protokoll finden Sie auf der offiziellen Website. Der Benutzer-JWT fungiert als Zugriffstoken.
Die Interaktion zwischen Ihrem OAuth 2.0-Client und dem Xsolla Login-Server läuft wie folgt ab:
So richten Sie das OAuth 2.0-Protokoll ein:
- Verknüpfen Sie das Login-Produkt.
- Richten Sie den Xsolla-, PlayFab- oder Firebase-Speicher ein.
- Verknüpfen Sie einen OAuth 2.0-Client.
OAuth 2.0-Client verknüpfen
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- Öffnen Sie Ihr Projekt im Handyspiele-Konto, und navigieren Sie zum Menüpunkt Other tools > Login.
- Klicken Sie beim gewünschten Login-Projekt auf Konfigurieren.
- Scrollen Sie zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- Klicken Sie auf OAuth 2.0-Client hinzufügen.
- Geben Sie im Modalfenster Folgendes an:
- Client-Name.
- URI(s), an die die Benutzer nach einer Kontobestätigung, einer erfolgreichen Authentifizierung oder dem Zurücksetzen des Passworts weitergeleitet werden.
- Authentifizierungstyp: öffentlich, vertraulich oder Server.
- bei der Serverauthentifizierung:
grant_type=client_credentials; - bei der vertraulichen und öffentlichen Authentifizierung:
grant_type=authorization_codeodergrant_type=refresh_token.
- Der vertrauliche Client erfordert eine Client-ID und einen geheimen Schlüssel, wenn Sie die Methode Generate JWT aufrufen, um ein Zugriffstoken abzurufen oder zu aktualisieren.
- Der öffentliche Client erfordert bloß die Client-ID.
- Der Methodenaufruf JWT auth by username and password ist nur bei der öffentlichen Authentifizierung verfügbar.
- Klicken Sie auf Verknüpfen.
- Daraufhin wird eine Client-ID und ein geheimer Schlüssel generiert. Beide sind für die Einrichtung der OAuth 2.0-Authentifizierung in Ihrer Anwendung erforderlich.
- Kopieren Sie im Dialogfenster die Client-ID und den geheimen Schlüssel mithilfe der Kopieren-Schaltfläche.
OAuth 2.0-Client-Einstellungen abrufen
- Öffnen Sie Ihr Projekt im Kundenportal, und wechseln Sie zum Abschnitt Spieler > Login.
- Klicken Sie beim gewünschten Login-Projekt auf Konfigurieren.
- Scrollen Sie zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
- Gehen Sie in der Zeile des gewünschten OAuth 2.0-Clients wie folgt vor:
- Kopieren Sie den Inhalt des Feldes Client-ID.
- Klicken Sie auf Client-Schlüssel, um den geheimen Schlüssel zu kopieren.
- Öffnen Sie Ihr Projekt im Handyspiele-Konto, und wechseln Sie zum Abschnitt Other tools > Login.
- Klicken Sie beim gewünschten Login-Projekt auf Konfigurieren.
- Scrollen Sie zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
- Gehen Sie in der Zeile des gewünschten OAuth 2.0-Clients wie folgt vor:
- Kopieren Sie den Inhalt des Feldes Client-ID.
- Klicken Sie auf Client-Schlüssel, um den geheimen Schlüssel zu kopieren.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- In der Zeile des erforderlichen OAuth 2.0-Clients:
- Kopieren Sie den Inhalt des Feldes Client-ID.
- Klicken Sie auf Client-Schlüssel, um den geheimen Schlüssel zu kopieren.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- In der Zeile des erforderlichen OAuth 2.0-Clients:
- Kopieren Sie den Inhalt des Feldes Client-ID.
- Klicken Sie auf Client-Schlüssel, um den geheimen Schlüssel zu kopieren.
- Öffnen Sie Ihr Projekt im Konto und gehen Sie zum Abschnitt Spieler > Login.
- Klicken Sie im Bereich einer Login-Option auf Konfigurieren.
- Gehen Sie zum Block Sicherheit und wählen Sie den Abschnitt OAuth 2.0 aus.
- In der Zeile des erforderlichen OAuth 2.0-Clients:
- Kopieren Sie den Inhalt des Feldes Client-ID.
- Klicken Sie auf Client-Schlüssel, um den geheimen Schlüssel zu kopieren.
client_id und client_secret in den Methoden der Login API. Verwenden Sie diese Werte, wenn Sie mit OAuth 2.0-Clients arbeiten.Integration aufseiten der Anwendung
Folgende Integrationsmöglichkeiten stehen zur Auswahl:
Bei der Arbeit mit der Login API und dem Login-Widget wird der Parameter scope verwendet. Dieser kann folgende Werte annehmen:
offlinezum Aktualisieren des Zugriffstokens. Übermitteln Siescope=offlinean die Registrierungs- bzw. Authentifizierungsmethode.emailzum Abfragen der E-Mail-Adresse des Benutzers, wenn die Authentifizierung über ein soziales Netzwerk erfolgt. Wenn Sie das Login-Produkt über die Login API integriert haben, übermitteln Siescope=emailan die Registrierungs- bzw. Authentifizierungsmethode. Wenn Sie das Login-Produkt hingegen über das Login-Widget integriert haben, müssen Sie die Erfassung von E-Mail-Adresse konfigurieren, wie in dieser Anleitung beschrieben.
Integration über das Login-Widget
Wenn Sie die Integration über das Login-Widget konfiguriert haben, fügen Sie die Parameter client_id, response_type, state und redirect_uri dem Initialisierungscode hinzu. Im redirect_uri-Parameter müssen Sie den Wert angeben, der beim Verbinden des OAuth 2.0-Clients im Konto festgelegt wurde. Sie können auch den scope-Parameter hinzufügen.
Wenn die Integration über das Login-Widget erfolgte, fügen Sie die Parameter client_id, response_type, state und redirect_uri dem Initialisierungscode hinzu. Im Parameter redirect_uri müssen Sie den Wert angeben, der bei der Verknüpfung des OAuth 2.0-Clients im Handyspiele-Konto festgelegt wurde. Ebenso können Sie den Parameter scope hinzufügen.
Wenn Sie die Integration über das Login-Widget konfiguriert haben, fügen Sie die Parameter client_id, response_type, state und redirect_uri dem Initialisierungscode hinzu. Im redirect_uri-Parameter müssen Sie den Wert angeben, der beim Verbinden des OAuth 2.0-Clients im Konto festgelegt wurde. Sie können auch den scope-Parameter hinzufügen.
- html
1<script>
2const xl = new XsollaLogin.Widget({
3 projectId: 'LOGIN_PROJECT_ID',
4 preferredLocale: 'en_US',
5 clientId: 'CLIENT_ID',
6 responseType: 'code',
7 state: 'CUSTOM_STATE',
8 redirectUri: 'REDIRECT_URI',
9 scope: 'SCOPE'
10});
11</script>
Integration über die Login API
Nutzen Sie die API-Methoden für das OAuth 2.0-Protokoll, um Benutzer zu registrieren und zu authentifizieren. Wenn Sie bereits Methoden für den JWT-Standard integriert haben, ersetzen Sie diese durch OAuth 2.0-Methodenaufrufe.
Tauschen Sie beim Aufruf von Authentifizierungsmethoden den empfangenen Parameter code gegen einen Zugriffstoken.
Integration über die Xsolla-SDKs
Die Xsolla-SDKs unterstützten die auf dem OAuth 2.0-Protokoll basierende Authentifizierung. Wählen Sie die Game-Engine oder Plattform, und befolgen Sie die entsprechende Anleitung, um den OAuth 2.0-Client einzurichten:
Zugriffstoken abrufen
Verwenden Sie die Methode Generate JWT mit den folgenden Parameterwerten, um einen Benutzerzugriffstoken abzurufen:
authorization_codefür den Parametergrant_type;offlinefür den Parameterscope(erforderlich für die spätere Aktualisierung des Zugriffstokens);client_id– Einstellungswert des OAuth 2.0-Clients;client_secret– Einstellungswert des OAuth 2.0-Clients (nicht erforderlich für öffentliche OAuth 2.0-Clients);redirect_uri– der beim Verknüpfen des OAuth 2.0-Clients im Kundenportal festgelegte Wert;code– empfangen nach einer erfolgreichen Registrierung oder Benutzerauthentifizierung gegenüber der Anwendung.
Verwenden Sie die Methode Generate JWT mit den folgenden Parameterwerten, um einen Benutzerzugriffstoken abzurufen:
authorization_codefür den Parametergrant_type;offlinefür den Parameterscope(erforderlich für die spätere Aktualisierung des Zugriffstokens);client_id– Einstellungswert des OAuth 2.0-Clients;client_secret– Einstellungswert des OAuth 2.0-Clients (nicht erforderlich für öffentliche OAuth 2.0-Clients);redirect_uri– der beim Verknüpfen des OAuth 2.0-Clients im Handyspiele-Konto festgelegte Wert;code– empfangen nach einer erfolgreichen Registrierung oder Benutzerauthentifizierung gegenüber der Anwendung.
Um ein Benutzerzugriffstoken zu erhalten, verwenden Sie die Generate JWT-Methode mit den folgenden Parameterwerten:
authorization_codefür dengrant_type-Parameter;offlinefür denscope-Parameter (erforderlich für die spätere Verlängerung des Zugriffstokens);client_id— Einstellungswert des OAuth 2.0-Clients;client_secret— Einstellungswert des OAuth 2.0-Clients (nicht erforderlich für öffentliche OAuth 2.0-Clients);redirect_uri— der Wert, der beim Verbinden des OAuth 2.0-Clients im Konto festgelegt wurde;code— erhalten nach erfolgreicher Benutzerautorisierung oder Registrierung in der Anwendung.
Die API-Methode antwortet mit folgenden Token:
access_token– ein Zugriffstoken. Dieser verfällt standardmäßig nach 1 Stunde.refresh_token– ein Aktualisierungstoken. Diese ist zeitlich unbegrenzt gültig.
Anfragebeispiel:
http
- http
- curl
1POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
2Content-Type: application/x-www-form-urlencoded
3
4client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
1curl --request POST \
2 --url https://login.xsolla.com/api/oauth2/token \
3 --header 'content-type: application/x-www-form-urlencoded' \
4 --data grant_type=authorization_code \
5 --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
6 --data client_id=11 \
7 --data redirect_uri=https://my-website.com/callback \
8 --data code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik
Zugriffstoken aktualisieren
Wenn der Zugriffstoken abläuft, können Sie ihn mithilfe der Methode Generate JWT und dem Parameter grant_type aktualisieren, wie beim refresh_token und dem letzten Wert des erhaltenen Aktualisierungstokens (refresh_token).
Die API-Methode antwortet mit einem neuen Tokenpaar: access_token (Zugriffstoken) und refresh_token (Aktualisierungstoken), die dann erneut aktualisiert werden können.
Anfragebeispiel:
http
- http
- curl
1POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
2Content-Type: application/x-www-form-urlencoded
3
4client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
1curl --request POST \
2 --url https://login.xsolla.com/api/oauth2/token \
3 --header 'content-type: application/x-www-form-urlencoded' \
4 --data grant_type=refresh_token \
5 --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
6 --data client_id=11 \
7 --data redirect_uri=https://my-website.com/callback \
8 --data refresh_token=111dfgdfgdf
access_token und refresh_token), das der Benutzer vor den letzten fünf Tokenpaaren erhalten hat, seine Gültigkeit. Wenn Sie die Anzahl der gleichzeitigen Benutzersitzungen ändern möchten, wenden Sie sich an Ihren Customer Success Manager oder senden Sie eine E-Mail an [email protected].Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.