OAuth 2.0: Verknüpfen

So funktioniert's

Xsolla-Login unterstützt die auf dem OAuth 2.0-Protokoll basierende Benutzerauthentifizierung. Detaillierte Informationen über OAuth 2.0 finden Sie auf der offiziellen Website.

Eine Beschreibung des Format der Xsolla-Login API-Methoden für das OAuth 2.0-Protokoll finden Sie hier.

Für wen ist es

Partner, die den Xsolla-Login und die Xsolla- oder PlayFab-Datenbank integriert haben.

Wie komme ich dazu

  1. Senden Sie die Parameter zum Einrichten von OAuth 2.0 an Ihren Account Manager.
  2. Aktualisieren Sie Ihre Projektintegration.

Einstellungen für OAuth 2.0 übermitteln

Senden Sie folgende Parameter an Ihren Account Manager:

ParameterBeschreibung
scopeClient-Zugriff auf Benutzerdaten beschränken. Mögliche Werte:
  • offline zum Aktualisieren des Benutzer-JWT beim Aufruf der Methode Generate User JWT mit den Einstellungen grant_type=refresh_token. Die Übermittlung von scope=offline zur Registrierungs- oder Authentifizierungsmethode ist erforderlich.
  • email für die zusätzliche Abfrage der E-Mail-Adresse des Benutzers bei dessen Authentifizierung über ein soziales Netzwerk (siehe Anleitung).
redirect_uriDie URL zur Weiterleitung des Benutzers nach einer erfolgreichen Antwort auf eine Anfrage. Die Parameter zur Bestätigung der Benutzerdaten (code, state) werden während der Umleitung an die URL übermittelt.

Nach Verknüpfen des Protokolls mit dem Projekt sendet Ihnen der Account Manager die im folgenden beschriebenen Daten zu. Die Werte sollten beim Aufruf von API-Methoden an die entsprechenden Parameter übermittelt werden:

  • client_id: ID Ihres OAuth 2.0-Clients.
  • client_secret: Geheimer Schlüssel Ihres OAuth 2.0-Clients.

Projektintegration aktualisieren

Der Ablauf für die Aktualisierung der Projekteinstellungen hängt ab von der Login-Integrationsart:

Integration über das Widget aktualisieren

  1. Bei Integration des 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.

Beispiel:

<script>
const xl = new XsollaLogin.Widget({
  projectId: '[Login ID]',
  preferredLocale: 'en_US',
  clientId: '[client_id]',
  responseType: 'code',
  state: '[custom_state]',
  redirectUri: '[redirect_uri]'
});
</script>

    • Fügen Sie bei Nutzung der vorherigen Widget-Version die Parameter redirect_uri und client_id zum Initialisierungscode hinzu. Sie sollten das HTTP-/HTTPS-Schema im Parameter redirect_uri festlegen.

Beispiel:

<script type="text/javascript">
XL.init({
  projectId: '[Login ID]',
  callbackUrl: '[callbackUrl]',
  locale: 'en_US',
  redirectUri: '[redirect_uri]',
  clientId: '[client_id]'
});
</script>

  1. Nutzen Sie die Methode Generate User JWT nach erfolgreicher Benutzerauthentifizierung, um einen JWT abzurufen. Der für den Abruf des JWT erforderliche Parameter code wird nach der Benutzerauthentifizierung bzw. -registrierung an redirect_uri übermittelt.

Beispiel:

POST https://login.xsolla.com/api/oauth2/token

Headers:
Content-Type: application/x-www-form-urlencoded

Body:
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback

Integration über die Xsolla-Login-API aktualisieren

Nutzen Sie die folgenden API-Methoden für das OAuth 2.0-Protokoll, um Benutzer zu authentifizieren. Wenn Sie bereits Methoden für das JWT-Protokoll integriert haben, ersetzen Sie diese durch Aufruf der OAuth 2.0-Methoden.

Registrierung

Nutzen Sie die Methode Register, um einen neuen Benutzer hinzuzufügen.

Beispiel:

POST https://login.xsolla.com/api/oauth2/user?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

Headers:
  Content-Type: application/json

Body:
{
  "username": "John",
  "password": "password123",
  "email": "john@gmail.com"
}

Authentifizierung via Benutzername und Passwort

Nutzen Sie zum Abrufen des Parameters code die Methode Auth by Username and Password.

Beispiel:

POST https://login.xsolla.com/api/oauth2/login?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

Headers:
  Content-Type: application/json

Body:
{
  "username": "John",
  "password": "password123"
}

Zum Austauschen von code durch ein JWT siehe Abschnitt "JWT abrufen".

Authentifizierung über soziale Netzwerke

Nutzen Sie zum Abrufen des Parameters code die Methode Auth via Social Network.

Beispiel:

GET https://login.xsolla.com/api/oauth2/social/google/login_redirect?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

Zum Austauschen von code durch ein JWT siehe Abschnitt "JWT abrufen".

JWT abrufen

Nutzen Sie die Methode Generate User JWT samt Parametereinstellung grant_type=authorization_code, um den Benutzer-JWT abzurufen. Der für den Abruf des JWT erforderliche Parameter code wird nach der Benutzerauthentifizierung bzw. -registrierung an redirect_uri übermittelt.

Beispiel:

POST https://login.xsolla.com/api/oauth2/token

Headers:
Content-Type: application/x-www-form-urlencoded

Body:
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback