OAuth 2.0-Protokoll

Überblick

Xsolla-Login unterstützt das OAuth 2.0-Standardprotokoll für die Benutzerregistrierung und ‑authentifizierung. OAuth 2.0 trennt die Rolle des Clients von der Rolle des Ressourceneigentümers. Die Ressourcen werden vom Eigentümer kontrolliert und auf dem Server gehostet. Damit der Client auf geschützte Ressourcen zugreifen kann, erhält er einen Zugriffstoken (ein String, der Zugriffsattribute definiert) anstatt die Anmeldedaten des Ressourceneigentümers zu nutzen. Mit Zustimmung des Ressourceneigentümers vergibt der Server Zugriffstoken an Drittanbieter-Clients zur Nutzung. Detaillierte Informationen über das OAuth 2.0-Protokoll finden Sie auf der offizieller Website. Der Benutzer-JWT ist ein access_token.

Der Interaktionsablauf zwischen dem Client und dem Xsolla-Login-Server sieht wie folgt aus:

So richten Sie das OAuth 2.0-Protokoll ein:

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

OAuth 2.0-Client verknüpfen

  1. Wechseln Sie zum Kundenportal, und navigieren Sie zu Ihr Login-Projekt > Allgemeine Einstellungen > Autorisierung > OAuth 2.0-Authentifizierung.
  2. Klicken Sie auf Verbinden.
  3. Geben Sie daraufhin im Modalfenster Folgendes ein:
    1. Client-Name.
    2. OAuth 2.0-URIs für die Weiterleitung. Parameter redirect_uri für die Login API-Aufrufe.
    3. Authentifizierungstyp: öffentlich oder vertraulich

Note
Weitere Informationen über die Client-Typen finden Sie im The OAuth 2.0 Authorization Framework. Wenn die Login API genutzt wird:
  • erfordert der Client die Client-ID und den geheimen Schlüssel beim Aufruf von Generate JWT für das Abrufen und Aktualisieren des Zugriffstokens.
  • Der öffentliche Client erfordert lediglich die Client-ID.
  • Der Aufruf JWT auth by username and password ist nur für den öffentlichen Client verfügbar.

  1. Klicken Sie auf Verbinden.

OAuth 2.0-Client-Einstellungen abrufen

So rufen Sie die Client-ID und den geheimen Schlüssel ab:

  1. Wechseln Sie zum Kundenportal, und navigieren Sie zu Ihr Login-Projekt > Allgemeine Einstellungen > Autorisierung > OAuth 2.0-Authentifizierung.
  2. Klicken Sie im Client- Block auf Verbinden/Bearbeiten.

Nach dem Verknüpfen des OAuth 2.0-Clients öffnet sich automatisch ein Fenster mit den Einstellungen. Die Client-ID und der geheime Schlüssel entsprechen den Parametern client_id und client_secret für die Login API-Aufrufe. Verwenden Sie diese Einstellungen, wenn Sie mit OAuth 2.0-Clients arbeiten.

Note
Für die OAuth 2.0-Implementierung aufseiten Ihrer Anwendung wird empfohlen, sorgfältig debuggten Code aus den Client-Bibliotheken zu nutzen. So schützen Sie sich und Ihre Benutzer.

Integration aufseiten der Anwendung

Folgende Integrationsmöglichkeiten stehen zur Auswahl:

Bei Nutzung der Login API können Sie außerdem den Parameter scope verwenden. Mögliche Parameterwerte sind:

  • offline: für das Aktualisieren des Zugriffstokens. Sie müssen scope=offline an den Registrierungs- bzw. Authentifizierungsaufruf übermitteln.
  • email: für die zusätzliche Abfrage der E-Mail-Adresse des Benutzers bei dessen Authentifizierung über ein soziales Netzwerk. Legen Sie diesen Wert fest, wenn Sie Login über die vorherige Version des Login-Widgets integriert haben. Siehe Anleitung E-Mail-Adressen bei der Authentifizierung über soziale Netzwerke erfassen.

Integration über das Login-Widget

Bei Integration von Login über das Widget:

  • Fügen Sie bei Nutzung von Widget 2.0 die Parameter client_id, response_type, state und redirect_uri zum Initialisierungscode hinzu. Außerdem können Sie den Parameter scope hinzufügen. Sie sollten das HTTP-/HTTPS-Schema im Parameter redirect_uri festlegen, so wie in https://example.com.

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>

  • Fügen Sie bei Nutzung der vorherigen Widget-Version die Parameter redirect_uri und client_id zum Initialisierungscode hinzu. Außerdem können Sie den Parameter scope hinzufügen. Sie sollten das HTTP-/HTTPS-Schema im Parameter redirect_uri festlegen.

Copy
Full screen
Small screen
<script type="text/javascript">
XL.init({
  projectId: 'LOGIN_PROJECT_ID',
  locale: 'en_US',
  redirectUri: 'REDIRECT_URI',
  clientId: 'CLIENT_ID',
  state: 'CUSTOM_STATE',
  scope: 'SCOPE'
});
</script>

Integration über die Login API

Verwenden Sie für die Benutzerregistrierung und ‑authentifizierung die API-Anfragen des OAuth 2.0-Protokoll. Wenn Sie bereits Anfragen für den JWT-Standard integriert haben, ersetzen Sie diese durch den Aufruf der OAuth 2.0-Anfragen.

Tauschen Sie beim Aufruf von API-Authentifizierungsanfragen den Parameter code gegen einen Zugriffstoken aus.

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 und befolgen Sie die entsprechende Anleitung, um den OAuth 2.0-Client einzurichten:

Zugriffstoken abrufen

Nutzen Sie den Aufruf Generate JWT samt Parametereinstellung grant_type=authorization_code, um den Zugriffstoken abzurufen. Der für den Abruf des Tokens erforderliche Parameter code wird nach der Benutzerauthentifizierung bzw. ‑registrierung an redirect_uri übermittelt.

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

Der Xsolla-Login-Server generiert einen Zugriffstoken und erstellt für jeden erfolgreich authentifizierten Benutzer eine neue Sitzung. Standardmäßig verfällt der Token nach einer 1 Stunde.

Nutzen Sie zum Aktualisieren des Tokens den Aufruf Generate JWT:

  • Nutzen Sie beim erstmaligen Aufruf die Parametereinstellung grant_type=authorization_code und den Parameter code, den Sie nach der Benutzerauthentifizierung empfangen haben.
  • Nutzen Sie für nachfolgende Aufrufe nach Verfall des Tokens die Parametereinstellung grant_type=refresh_token und den neusten refresh_token-Wert.

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

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: 24. Dezember 2020

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!