Single Sign-on
So funktioniert's
Wenn Sie mehrere verknüpfte Dienste mit einem gemeinsamen Konto für die Benutzerauthentifizierung haben, können Sie Single Sign-on verwenden. Die Website des Spiels fungiert dabei als Dienst. Sie erlaubt es einem Benutzer, seine Anmeldedaten nur einmal einzugeben. Danach ist der Benutzer beim Öffnen eines der verknüpften Dienste bereits authentifiziert.
Interaktionsablauf
- Nicht authentifizierter Benutzer öffnet einen der Dienste.
- Ihr Client sendet die Anfrage
Check user authentication an den Xsolla Login-Server und erhält die Fehlermeldung 401. - Ihr Client öffnet das Authentifizierungsformular (Login-Widget oder Ihre Anmeldeoberfläche) für den Benutzer.
- Der Benutzer authentifiziert sich mittels Benutzername und Passwort oder über ein soziales Netzwerk.
- Ihr Client authentifiziert den Benutzer in Ihrem Login-Projekt:
- Die folgenden Anfragen werden bei der Integration von Login über die API-Aufrufe verwendet:
- Bei der Integration von Login über das Widget wird das OAuth 2.0-Protokoll verwendet.
login_uri
samt dem darin enthaltenenredirect_uri
mitcode
im Anfrageparameter.
- Ihr Client leitet den Benutzer zum
redirect_uri
um. - Ihr Server sendet die Anfrage
Generate JWT , um den empfangenencode
gegen einen JWT auszutauschen. Daraufhin wird der Benutzer bei dem Dienst authentifiziert. - Der Benutzer ruft einen weiteren Dienst auf.
- Ihr Client sendet die Anfrage
Check user authentication an den Xsolla Login-Server und empfängt denlogin_uri
samt darin enthaltenemredirect_uri
mitcode
im Abfrageparameter. - Ihr Server sendet die Anfrage
Generate JWT , um den empfangenencode
gegen einen JWT auszutauschen. Daraufhin wird der Benutzer bei dem zweiten Dienst authentifiziert.
Zugriffsrechte für verschiedene Dienste differenzieren
Sie können spezielle Werte des Parametersscope=playfab
) in verschiedenen OAuth 2.0-Clients verwenden, um die Benutzerkonto-Zugriffsrechte für verschiedene Dienste zu differenzieren.Für wen ist es
Partner, die Login bereits integriert haben und die Xsolla-, Firebase- oder PlayFab-Datenbank nutzen.
Wie komme ich dazu
So binden Sie den Single Sign-on ein:
- Verknüpfen Sie das OAuth 2.0-Protokoll.
- Implementieren Sie die Rückrufanfrage für das Abrufen der Benutzersitzung.
OAuth 2.0-Protokoll verknüpfen
Folgen Sie der Anleitung, um das OAuth 2.0-Protokoll zu verknüpfen. Sie können einen OAuth 2.0-Client für alle Dienste verwenden oder für jeden Dienst einen separaten OAuth 2.0-Client erstellen.Aufrufanfrage für das Abrufen der Benutzersitzung
Implementieren Sie die Rückrufanfrage
Anfragebeispiel:
http
- http
- curl
GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
curl --request GET \
--url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'
Antwortbeispiel bei authentifiziertem Benutzer:
- http
HTTP/1.1 200 OK
Content-Type: application/json
{
"login_url": "<redirect_uri>?code=<code>"
}
So rufen Sie einen JWT ab:
- Ihr Client implementiert und verwendet die Anfrage, die den Benutzer an den empfangenen
redirect_uri
weiterleitet. - Ihr Server sendet die Anfrage
Generate JWT samt empfangenemcode
undgrant_type=authorization_code
, um einen JWT abzurufen.
Antwortbeispiel bei nicht authentifiziertem Benutzer:
- http
HTTP/1.1 401 Unauthorized
Content-Type: application/json
{
"error": {
"code": "003-040",
"description": "User is unauthorized."
}
}
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.