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:
- Verknüpfen Sie Login.
- Richten Sie den Xsolla-Speicher oder PlayFab ein.
- Verknüpfen Sie den OAuth 2.0-Client.
OAuth 2.0-Client verknüpfen
- Wechseln Sie zum Kundenportal, und navigieren Sie zu Ihr Login-Projekt > Allgemeine Einstellungen > Autorisierung > OAuth 2.0-Authentifizierung.
- Klicken Sie auf Verbinden.
- Geben Sie daraufhin im Modalfenster Folgendes ein:
- Client-Name.
- OAuth 2.0-URIs für die Weiterleitung. Parameter redirect_uri für die Login API-Aufrufe.
- Authentifizierungstyp: öffentlich oder vertraulich
- 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.
- Klicken Sie auf Verbinden.
OAuth 2.0-Client-Einstellungen abrufen
So rufen Sie die Client-ID und den geheimen Schlüssel ab:
- Wechseln Sie zum Kundenportal, und navigieren Sie zu Ihr Login-Projekt > Allgemeine Einstellungen > Autorisierung > OAuth 2.0-Authentifizierung.
- 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.
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.
- 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>
- 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.
- html
<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-Protokolls. 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 das Login SDK
Das Login SDK unterstützt die auf dem OAuth 2.0-Protokoll basierende Authentifizierung. Wählen Sie die Game-Engine und befolgen Sie die Anweisungen, um den OAuth 2.0-Client einzurichten:
Zugriffstoken abrufen
Nutzen Sie den Aufruf
- http
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
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
- 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.
- http
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=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback