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:

  1. Verknüpfen Sie das Login-Produkt.
  2. Richten Sie den Xsolla-, PlayFab- oder Firebase-Speicher ein.
  3. Verknüpfen Sie einen OAuth 2.0-Client.

OAuth 2.0-Client verknüpfen

  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 auf der Navigationsseite zum Block Sicherheit, und klicken Sie auf OAuth 2.0.

  1. Klicken Sie auf OAuth 2.0-Client hinzufügen.

  1. 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.

Note
Informationen zu den Authentifizierungstypen (Client-Typen) finden Sie unter The OAuth 2.0 Authorization Framework und Confidential and Public Applications. Die Authentifizierungstypen "Server" und "Vertraulich" nutzen beide einen vertraulichen Client, unterscheiden sich aber in der Art und Weise, wie sie den Zugriff auf die Anwendung gewähren (weitere Informationen finden Sie unter Application Grant Types):
  • bei der Serverauthentifizierung: grant_type=client_credentials;
  • bei der vertraulichen und öffentlichen Authentifizierung: grant_type=authorization_code oder grant_type=refresh_token.
Erfolgt die Integration über die Login API, sollten Sie bei der Wahl des Authentifizierungstyps die folgenden Aspekte berücksichtigen:
  • 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.

  1. Klicken Sie auf Verknüpfen.

  1. 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.

  1. 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:

  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 auf der Navigationsseite zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
  4. 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.

Note
Wenn Sie die OAuth 2.0-Authentifizierung in Ihrer Anwendung implementieren, empfehlen wir Ihnen, den Code aus den Client-Bibliotheken zu verwenden. So können Sie Ihre Informationen und die Daten Ihrer Benutzer schützen.

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 Sie scope=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 Sie scope=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:

Copy
Full screen
Small screen
<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:

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:

Copy
Full screen
Small screen
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:

Copy
Full screen
Small screen
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

Note
Das Login-Produkt unterstützt standardmäßig maximal fünf gleichzeitige Benutzersitzungen. Bei jeder neuen Benutzerauthentifizierung verliert das Tokenpaar (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 Account Manager.
War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Diese Seite bewerten
Diese Seite bewerten
Gibt es etwas, das wir verbessern können?

Jetzt nicht

Vielen Dank für Ihr Feedback!
Letztmalig aktualisiert: 29. März 2022

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!