The following documentation was deprecated. Current version is available at developers.xsolla.com

Xsolla-Login

Mit dem Xsolla-Login können sich Spieler mit ihren sozialen-Netzwerk-Konten in jedes Spiel einloggen. Dadurch können die Spieler umgehend und einfach mit dem Spielen loslegen. Zusätzlich speichert der Xsolla-Login die Zahlungsdaten der Spieler, so dass diese auch in Zukunft bequem per Mausklick einkaufen können. Entwickler können den Xsolla-Login vollständig anpassen, so dass es als aussieht als wäre er ein Teil ihres Spiels.

Erste Schritte

Registrieren Sie Ihre App, indem Sie uns eine E-Mail mit folgenden Angaben an bizdev@xsolla.com

senden:

  • Site - Diejenige Website, die sich mit dem Xsolla-Login verbinden soll (e.g. http://mysite.com).

  • Domain - Der Hauptdomainname der Website (z. B. mysite.com). Wenn Sie mehrere Domainnamen haben, geben Sie alle an — allen wird die selbe projectID zugeordnet.

  • Unterstützte Authentifizierungsmethoden:

    • Login/Passwort,
    • SMS,
    • Soziale Netzwerke (Facebook, Twitter, Steam, Twitch, VK, Naver usw.),
    • i-PIN (Betatestphase),
    • Mehrfaktor-Authentifizierung (Betatestphase),
    • Zertifikat (Betatestphase),
    • Lokale Authentifizierung mit sozialem Netzwerk (Betatestphase).

Für letzteres teilen Sie uns bitte mit, welche sozialen Netzwerke Sie für die Authentifizierung verwenden möchten.

Wir schicken Ihnen eine Nachricht mit Ihrer projectID und dem secretKey.

Authentifizierungs-Widget

Mithilfe des folgenden Beispiels können Sie ein Standard-Authentifizierungs-Widget zu Ihrem Projekt hinzufügen. Laden Sie hier das SCSS-Template herunter.

Die Standardbreite des Felds beträgt 400 px; die Höhe hängt von den Authentifizierungsoptionen ab.

Example of a default design Example of a custom design Example of a custom design

Widget installieren

Gehen Sie folgendermaßen vor, um ein Xsolla-Login-Widget zu Ihrem Spiel hinzuzufügen:

1. Schritt

Aktivieren Sie xl.min.js im <Header&gt:

<script src="https://static.xsolla.com/xsolla-login/1.1.1/xl.min.js"></script>

2. Schritt

Fügen Sie den Initialisierungscode in den <Body&gt ein:

<script type="text/javascript">
XL.init({
          projectId: '40db2ea4-5p47-11e6-a3ff-005056a0e04a',
          locale: 'en_US',
          onlyWidgets: true,
          redirectUrl: '<your redirect url>',
          fields: 'email'
      });
</script>
Name Typ Beschreibung
projectId string App-ID. Erforderlich.
locale string Gebietsschema des Benutzers; spezifiziert als <language code>_<country code>[_<variant code>], wobei:
redirectUrl string URL, an welche der Benutzer nach der Authentifizierung weitergeleitet wird. Wird innerhalb eines JWT-Token gesendet.
onlyWidgets boolean Xsolla-Login nur für Widgets initialisieren. 'True' voreingestellt.
preloader string Preloader wird angezeigt, während das Widget geladen wird. Geben Sie den HTML-Code des Elements an.
fields string Daten, die vom Benutzer abgefragt werden müssen. Zulässiger Wert: 'email'. Erforderlich.

3. Schritt

Fügen Sie ein DIV-Element hinzu, um das Widget einzubinden. Geben Sie ihm eine eindeutige ID und hängen Sie den Initialisierungscode des Widgets hinten an.

<div id="xl_auth"></div>
<script type="text/javascript">
var element_id = 'xl_auth';
var options = {
     width: '200px',
     height: '200px'
};
XL.AuthWidget(element_id, options);
</script>
Name Typ Beschreibung
element_id string ID des Authentifizierungs-Container-Elements. Erforderlich.
options object Widget-Feldeinstellungen.
options.width string Breite eines Feldes.
options.height string Höhe eines Feldes.

Serverseitiger Xsolla-Login

So funktioniert's

Rückruf-URL

Leitet den Benutzer nach der Authentifizierung zu dieser URL weiter.

Erfolgreiche Authentifizierung

Wenn die Authentifizierung erfolgreich ist, leiten wir den Benutzer mit den folgenden Parametern zu Ihrer Rückruf-URL weiter:

HTTP-Anfrage

GET https://callBackUrl.php?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

Parameter Type Description
Token string JWT. You can decrypt it using the secret key.
is_linking boolean Der Benutzer hat ein Konto verknüpft.

Entschlüsseltes Token (Beispiel)

{
   "exp": 1471071785,
   "iss": "https://login.xsolla.com",
   "iat": 1470985385,
   "id": "11111111",
   "name": "John Carter",
   "email": "john@example.com",
   "type": "social",
   "provider": "social_network",
   "xsolla_login_access_key": "s4dGNSPKinUxkSRI8rhPhZRElHj2yusqEeqgLIgn"
}
Parameter Type Description
exp string Token-Verfallsdatum (Unix-Zeitstempel).
iss string JWT-Herausgeber.
iat string Erstellungsdatum (Unix-Zeitstempel).
id string Benutzer-ID.
name string Vollständiger Name des Benutzers.
email string User email.
type string Art der Authentifizierung. Kann entweder "proxy" (authentifiziert mittels Proxy) oder "social" (Login über ein soziales Netzwerk) sein.
provider string Name des sozialen Netzwerks. Can be one of the following: "vk", "facebook", "twitter", "steam", "baidu", "naver", "qq", "github", "microsoft", "linkedin", "google".
xsolla_login_access_key string Zugriffsschlüssel, um Methoden im Namen des Benutzers aufzurufen.

Fehlgeschlagene Authentifizierung

Wenn die Authentifizierung fehlschlägt, leiten wir den Benutzer mit folgenden Parametern zu Ihrer Rückruf-URL weiter:

HTTP-Anfrage

GET https://callBackUrl.php?error=003-002&error_description=User+not+found&redirect_url=https://site.com/fail_url

Parameter Type Description
error string Fehlercodegruppe.
error_description string Fehlerbeschreibung.
redirect_url string Rückruf-URL für das Projekt.

Zusätzliche API-Methoden

Wenn sich bereits Benutzer bei Ihnen registriert haben, können Sie die Authentifizierung mittels Proxy vornehmen. Für diesen Fall implementieren Sie folgende Methoden:

Der Xsolla-Login ruft die Methoden via https://login.xsolla.com/ und https://test-login.xsolla.com/ auf.

Login/Passwort-Prüfung

  • Typ: POST
  • Content-type: application/json
  • Anfragerumpf: {"username":"ХХХХ", "password":"ХХХХ"}
  • Erfolgreich: {Ok 200}
  • Fehlgeschlagen: {"error": {"code": "003-001", "description": "" }}

Anmeldung

  • Typ: POST
  • Content-type: application/json
  • Anfragerumpf: {"username":"ХХХХ", "password":"ХХХХ", "email":"ХХХХ"}
  • Erfolgreich: {Ok 200}
  • Fehlgeschlagen: {error: {code: "003-003 | 004", description: "" }}

Passwort zurücksetzen

  • Typ: POST
  • Content-type: application/json
  • Anfragerumpf: {"email":"ХХХХ"}
  • Erfolgreich: {Ok 200}
  • Fehlgeschlagen: {"error": {"code": "003-002", "description": ""}}