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 Kundenportal, und wechseln Sie zum Abschnitt Login.
- Klicken Sie beim gewünschten Login-Projekt auf Konfigurieren.
- Scrollen Sie zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
- 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_code
odergrant_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
Wenn Sie die Client-ID und den geheimen Schlüssel beim Verknüpfen des OAuth 2.0-Client nicht kopiert haben, können Sie wie folgt auf die Daten zuzugreifen:
- Öffnen Sie Ihr Projekt im Kundenportal, und wechseln Sie zum Abschnitt 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.
Die Client-ID und der geheime Schlüssel entsprechen den Parametern 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:
offline
zum Aktualisieren des Zugriffstokens. Übermitteln Siescope=offline
an die Registrierungs- bzw. Authentifizierungsmethode.email
zum 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=email
an 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 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 Kundenportal festgelegt wurde. Ebenso können Sie den Parameter scope
hinzufügen.
Anfragebeispiel:
- html
<script>
const xl = new XsollaLogin.Widget({
projectId: 'LOGIN_PROJECT_ID',
preferredLocale: 'en_US',
clientId: 'CLIENT_ID',
responseType: 'code',
state: 'CUSTOM_STATE',
redirectUri: 'REDIRECT_URI',
scope: 'SCOPE'
});
</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_code
für den Parametergrant_type
;offline
fü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.
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
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
curl --request POST \
--url https://login.xsolla.com/api/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=authorization_code \
--data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
--data client_id=11 \
--data redirect_uri=https://my-website.com/callback \
--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
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
curl --request POST \
--url https://login.xsolla.com/api/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=refresh_token \
--data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
--data client_id=11 \
--data redirect_uri=https://my-website.com/callback \
--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 csm@xsolla.com.Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.