Authentifizierung
Anstatt langlebiger Token verwendet OAuth 2.0 kurzlebige Token mit langfristiger Autorisierung (Aktualisierungstoken). Ein Aktualisierungstoken ermöglicht es den Benutzern, über einen längeren Zeitraum in der Anwendung zu verbleiben, ohne ihren Benutzernamen und ihr Passwort erneut eingeben zu müssen. Dadurch wird das Risiko der Kompromittierung von Benutzerauthentifizierungsdaten eliminiert.
Einrichtung von OAuth 2.0 für die Autorisierung:
- über Benutzername oder E-Mail-Adresse und Passwort
- über soziale Netzwerke
- über Steam
Bei aktivierter Option erfolgt die Benutzerregistrierung und -authentifizierung durch die API-Aufrufe Awake
aufgerufen. Die Methode prüft, ob der aktuelle Aktualisierungstoken abgelaufen ist.
So konfigurieren Sie die OAuth 2.0-Authentifizierung:
- Konfigurieren Sie die OAuth 2.0-Authentifizierung für Login-Projekte im Kundenportal.
- Konfigurieren Sie die Inhalte in Ihrem Unity-Projekt.
OAuth 2.0-Authentifizierung für Login-Projekte im Kundenportal einrichten
- Wechseln Sie ins Kundenportal.
- Klicken Sie im seitlichen Menü auf Login.
- Klicken Sie im gewünschten Login-Anzeigebereich auf Konfigurieren.
- Scrollen Sie zum Block Sicherheit, und klicken Sie auf OAuth 2.0.
- Klicken Sie auf OAuth 2.0 hinzufügen.
- Geben Sie die OAuth 2.0-URIs für die Weiterleitung an, und klicken Sie auf Verknüpfen.
- Kopieren und speichern Sie die Client-ID.
Inhalte in Ihrem Unity-Projekt einrichten
- Wechseln Sie zu Ihrem Unity-Projekt.
- Klicken Sie im Hauptmenü auf
Window > Xsolla > Edit Settings . - Gehen Sie im
Inspector -Fensterbereich wie folgt vor:- Wählen Sie im Feld
Authorization method die OptionOAuth2.0 aus. - Geben Sie im Feld
OAuth2.0 client ID die bei der OAuth 2.0-Einrichtung im Kundenportal erhaltene Client-ID an.
- Wählen Sie im Feld
Folgende Methoden sind für die Arbeit mit Aktualisierungstoken im Login & Account System-Asset integriert:
IsOAuthTokenRefreshInProgress
– gibt während des laufenden Aktualisierungstokenprozessestrue
zurück, andernfalls false.ExchangeCodeToToken
– tauscht den Benutzerauthentifizierungstoken gegen einen gültigen JWT aus.
Das Argument oauthState
aus der Methode GetSocialNetworkAuthUrl
dient zur zusätzlichen Benutzerverifizierung während der OAuth 2.0-Authentifizierung. Mithilfe dieses Arguments werden eventuelle CSRF-Angriffe eingedämmt.
Diese Anleitung ist nur für die Arbeit mit folgenden Assets bestimmt:
- Game Commerce
- Cross-Buy
Das Cross-Buy-Asset gilt ab April 2022 als veraltet. Sie können es weiterhin nutzen, allerdings wird es fortan weder aktualisiert noch durch neue Funktionen erweitert. Es wird empfohlen, auf das Game Commerce-Asset umzusteigen. Es enthält alle Klassen und Methoden, die für die Arbeit mit Xsolla-Produkten nötig sind.
Sie können die Game Commerce- und Cross-Buy-Assets in Ihr eigenes Anmeldesystem integrieren. Dafür müssen Sie die Benutzerauthentifizierung über den Zugriffstoken der Bezahlstation in Ihre Anwendung implementieren.
So erfolgt die Interaktion mit Xsolla-Servern bei Nutzung Ihres eigenen Autorisierungssystems:
- Ihr Client sendet eine Authentifizierungsanfrage an Ihren Server.
- Ihr Server autorisiert den Benutzer und sendet eine Anfrage an den Xsolla-Server, um den Zugriffstoken der Bezahlstation abzurufen.
- Der Xsolla-Server antwortet mit dem Bezahlstation-Zugriffstoken.
- Ihr Server übermittelt den Bezahlstation-Zugriffstoken an den Client.
- Die SDK-Methoden verwenden den empfangenen Bezahlstation-Zugriffstoken als Autorisierungstoken, um einen Ingame-Shop zu öffnen, eine Zahlung zu tätigen und das Inventar zu verwalten.
Zugriffstoken der Pay Station abrufen
Implementieren Sie im Backend Ihrer Anwendung eine Methode zum Abrufen eines Bezahlstation-Zugriffstokens mithilfe einer HTTP-POST-Anfrage.
Die Xsolla-API nutzt die HTTP-Basisauthentifizierung. Die Anfrage muss den Header Authorization: Basic <your_authorization_basic_key>
enthalten, wobei <your_authorization_basic_key>
dem gemäß Base64-Standard kodierten merchant_id:api_key
entspricht. Sie finden die Parameterwerte im Kundenportal:
merchant_id
– navigieren Sie zu Projekteinstellungen > Webhooks > Händler-ID.api_key
– navigieren Sie zu Firmeneinstellungen > API-Schlüssel.
HTTP-Anfrage:
http
- http
- curl
- php
- C#
- python
- ruby
- java
- javascript
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
Headers:
Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json
Body:
{
"purchase": {
"virtual_currency": {
"quantity": 100
},
"virtual_items": {
"items": [
{
"amount": 1,
"sku": "SKU01"
}
]
}
},
"settings": {
"currency": "USD",
"language": "en",
"project_id": 16184,
"ui": {
"components": {
"virtual_currency": {
"custom_amount": true
}
},
"desktop": {
"virtual_item_list": {
"button_with_price": true,
"layout": "list"
}
},
"size": "medium"
}
},
"user": {
"country": {
"allow_modify": true,
"value": "US"
},
"age": 19,
"email": {
"value": "john.smith@mail.com"
},
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
}
}
}
curl --request POST \
--url https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
--header 'authorization: Basic <your_authorization_basic_key>' \
--header 'content-type: application/json' \
--data '{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}'
<?php
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}');
$request->setRequestUrl('https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders(array(
'authorization' => 'Basic <your_authorization_basic_key>',
'content-type' => 'application/json'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client
conn = http.client.HTTPSConnection("api.xsolla.com")
payload = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"
headers = {
'content-type': "application/json",
'authorization': "Basic <your_authorization_basic_key>"
}
conn.request("POST", "/merchant/v2/merchants/{merchant_id}/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
require 'uri'
require 'net/http'
url = URI("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"
response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}");
Request request = new Request.Builder()
.url("https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token")
.post(body)
.addHeader("content-type", "application/json")
.addHeader("authorization", "Basic <your_authorization_basic_key>")
.build();
Response response = client.newCall(request).execute();
var data = JSON.stringify({
"user": {
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
},
"age": 19,
"email": {
"value": "john.smith@mail.com"
},
"country": {
"value": "US",
"allow_modify": true
}
},
"settings": {
"project_id": 16184,
"currency": "USD",
"language": "en",
"ui": {
"size": "medium",
"desktop": {
"virtual_item_list": {
"layout": "list",
"button_with_price": true
}
},
"components": {
"virtual_currency": {
"custom_amount": true
}
}
}
},
"purchase": {
"virtual_currency": {
"quantity": 100
},
"virtual_items": {
"items": [
{
"sku": "SKU01",
"amount": 1
}
]
}
}
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");
xhr.send(data);
Übermitteln Sie die folgenden Parameter im Anfragerumpf, um den Token abzurufen:
Parameter | Typ | Beschreibung |
---|---|---|
settings | object | Benutzerdefinierte Projekteinstellungen (Objekt). |
settings.project_id | integer | Xsolla-ID des Spiels. Kann im Kundenportal neben dem Namen Ihres Projekts eingesehen werden. Erforderlich. |
user | object | Benutzerdaten (Objekt). |
user.id | object | Benutzer-ID in Ihrem Autorisierungssystem (Objekt). |
user.id.value | string | Benutzer-ID. Erforderlich. |
user.email | object | E-Mail-Adresse des Benutzers (Objekt). |
user.email.value | string | E-Mail-Adresse des Benutzers. Muss gemäß RFC 822-Protokoll gültig sein. Erforderlich. |
user.name | object | Benutzername (Objekt).Erforderlich. |
user.name.value | string | Anzeigename des Benutzers |
user.steam_id | object | Benutzer-ID bei Steam (Objekt). |
user.steam_id.value | string | Benutzer-ID bei Steam. Erforderlich, sofern die Anwendung auf Steam veröffentlicht ist. |
user.playfab_id | object | Benutzer-ID bei PlayFab (Objekt) |
user.playfab_id.value | string | Benutzer-ID bei PlayFab. Erforderlich, sofern die Anwendung PlayFab-Dienste nutzt, um Gegenstände zu gewähren. |
Beispielhafte Anfragen und Antworten finden Sie in der API-Referenz.
custom_parameters
, purchase
usw.), da sie sind nicht dafür bestimmt sind, einen Autorisierungs-Token abzurufen.Benutzer-JWT verwenden
Um mit dem Bezahlstation-Zugriffstoken einen Ingame-Shop zu öffnen, eine Zahlung zu tätigen und das Inventar zu verwalten, übermitteln Sie ihn an die XsollaLogin.Instance.Token
- und XsollaStore.Instance.Token
-Eigenschaften in den SDK-Methoden.
Beispiele für die Nutzung des Autorisierungstokens finden Sie in den Tutorials:
- Virtuelle Gegenstände gegen echte Währung verkaufen
- Virtuelle Gegenstände gegen virtuelle Währung verkaufen
- Virtuelles Währungsguthaben anzeigen
- Gegenstände im Inventar anzeigen
Implementieren Sie die Logik für den Erhalt eines neuen Bezahlstation-Zugriffstokens nach dessen Verfall. Es wird empfohlen, einen neuen Token im Hintergrund abzurufen, damit sich der Benutzer nicht erneut bei der Anwendung anmelden muss.
Mit der nativen Authentifizierung können sich Benutzer über ein auf einem mobilen Gerät konfigurierten Social-Media-Konto bei Ihrer Anwendung anmelden.
Wenn sich ein Benutzer zum ersten Mal anmeldet, wird die Social-Media-Anwendung gestartet und bittet um Erlaubnis, den Benutzer zu authentifizieren. Danach erfolgt die Authentifizierung automatisch, ohne dass der Benutzer etwas tun muss.
Derzeit unterstützt das SDK die native Authentifizierung über die folgenden sozialen Netzwerke:
So konfigurieren Sie die native Authentifizierung:
- Erstellen Sie die Build Ihres Unity-Projekts für Android.
- Konfigurieren Sie die Anwendung im Entwicklerkonto des entsprechenden sozialen Netzwerks:
- Gehen Sie für die Authentifizierung über Facebook wie folgt vor:
- Registrieren Sie sich, und erstellen Sie eine neue Anwendung.
- Konfigurieren Sie die Anwendungsseite in Ihrem Facebook-Entwicklerkonto.
- Konfigurieren Sie für die Authentifizierung über Google das Projekt in der Google API Console.
- Gehen Sie für die Authentifizierung über WeChat wie folgt vor:
- Registrieren Sie sich, und erstellen Sie eine neue Anwendung.
- Reichen Sie die Anwendung zur Überprüfung ein.
- Gehen Sie für die Authentifizierung über QQ wie folgt vor:
- Registrieren Sie sich, und erstellen Sie eine neue Anwendung.
- Reichen Sie die Anwendung zur Überprüfung ein.
- Gehen Sie für die Authentifizierung über Facebook wie folgt vor:
- Konfigurieren Sie die Authentifizierung über soziale Netzwerke aufseiten von Xsolla:
- Für Facebook bzw. Google müssen Sie das jeweilige soziale Netzwerk im Kundenportal einbinden.
- Für WeChat und QQ müssen Sie sich an Ihren Account Manager wenden.
- Konfigurieren Sie das Asset für Ihr Unity-Projekt.
Unity-Projekt-Build für Android erstellen
- Wechseln Sie zu Ihrem Unity-Projekt.
- Klicken Sie im Hauptmenü auf
File > Build settings . - Klicken Sie im
Platform -Fensterbereich aufAndroid . - Klicken Sie auf
Build . - Stellen Sie sicher, dass der Hash-Key generiert ist:
- Klicken Sie im Hauptmenü auf
Window > Xsolla > Edit Settings . - Vergewissern Sie sich, dass der Hash-Key im Feld
Android debug hash key angezeigt wird.
- Klicken Sie im Hauptmenü auf
Für die weitere Konfiguration der nativen Authentifizierung benötigen Sie Folgendes:
Package Name : diesen finden sie imInspector -Fensterbereich nach Auswahl von Android als Plattform unterFile > Build settings .Android class name : diesen finden Sie unterWindow > Xsolla > Edit Settings > Inspector > Android class name .Android debug hash key : diesen finden Sie unterWindow > Xsolla > Edit Settings > Inspector > Android debug hash key .
Anwendungsseite in Ihrem Facebook-Entwicklerkonto einrichten
- Wechseln Sie in die Projekteinstellungen des Facebook-Entwicklerkontos.
- Navigieren Sie zu Einstellungen > Allgemeines.
- Klicken Sie auf Plattform hinzufügen, und wählen Sie Android aus.
- Geben Sie den
Package Name aus Ihrem Unity-Projekt im Feld Google Play Package-Name an. - Geben Sie den
Android class name aus Ihrem Unity-Projekt im Feld Klassenname an. - Geben Sie den
Android debug hash key aus Ihrem Untiy-Projekt im Feld Key-Hashes an. - Klicken Sie auf Änderungen speichern.
Zur weiteren Konfiguration der nativen Authentifizierung benötigen Sie eine App-ID und einen App-Geheimcode. Beide finden Sie in den Projekteinstellungen unter Einstellungen > Allgemeines.
Projekt in der Google API Console einrichten
- Wechseln Sie zur Google API Console.
- Klicken Sie auf Neues Projekt.
- Geben Sie den Projektnamen und den Speicherort an, und klicken Sie auf Erstellen.
- Wechseln Sie zum erstellten Projekt, und klicken Sie im Seitenmenü auf OAuth-Zustimmungsbildschirm.
- Wählen Sie die Option Extern aus, und klicken Sie auf Erstellen.
- Geben Sie die nötigen Parameter an, und klicken Sie auf Speichern.
- Klicken Sie im Seitenmenü auf Anmeldedaten.
- Erstellen Sie einen OAuth 2.0-Client für die Unity-Anwendung:
- Klicken Sie auf Anmeldedaten erstellen, und wählen Sie OAuth-Client-ID aus.
- Wählen Sie unter Anwendungstyp die Option Android aus.
- Geben Sie einen Namen an.
- Geben Sie den
Package Name aus dem Unity-Projekt im Feld Paketname an. - Geben Sie den
Android debug hash key aus dem Unity-Projekt im Feld SHA-1-Zertifikatfingerabdruck an. - Klicken Sie auf Erstellen.
- Klicken Sie auf OK.
- Erstellen Sie einen OAuth 2.0-Client für die Webanwendung:
- Klicken Sie auf Anmeldedaten erstellen, und wählen Sie OAuth-Client-ID aus.
- Wählen Sie unter Anwendungstyp die Option Webanwendung aus.
- Geben Sie einen Namen an.
- Klicken Sie unter Autorisierte Weiterleitungs-URIs auf URI hinzufügen, und geben Sie folgende URI an:
https://login.xsolla.com/api/social/oauth2/callback
. - Klicken Sie auf Erstellen.
- Klicken Sie auf OK.
Zur weiteren Konfiguration der nativen Authentifizierung benötigen Sie eine Client-ID und einen Clientschlüssel. Beide finden Sie in den Einstellungen der Client-ID für die Webanwendung.
Soziale Netzwerke für Login-Projekte im Kundenportal einbinden
- Öffnen Sie Ihr Projekt im Kundenportal.
- Klicken Sie im Seitenmenü auf Login, und navigieren Sie zu Login-Projekte > Ihr Login-Projekt > Social-Media-Einbindung.
- So richten Sie die Authentifizierung über Facebook ein:
- Klicken Sie im Facebook-Block auf Bearbeiten, und ändern Sie den Status in Getrennt.
- Geben Sie die App-ID aus dem Facebook-Entwicklerkonto im Feld Application ID an.
- Geben Sie den App-Geheimcode aus dem Facebook-Entwicklerkonto im Feld Application Secret an.
- Klicken Sie auf Verknüpfen.
- So richten Sie die Authentifizierung über Google ein:
- Klicken Sie im Google-Block auf Bearbeiten, und ändern Sie den Status in Getrennt.
- Geben Sie die Client-ID für eine Webanwendung aus der Google API Console im Feld Application ID an.
- Geben Sie den Clientschlüssel für eine Webanwendung aus der Google API Console im Feld Application Secret an.
- Klicken Sie auf Verknüpfen.
Inhalte für Ihr Unity-Projekt einrichten
- Wechseln Sie zu Ihrem Unity-Projekt.
- Klicken Sie im Hauptmenü auf
Window > Xsolla > Edit Settings . - Geben Sie die Anwendungs-ID an:
- Geben Sie die App-ID aus Ihrem Facebook-Entwicklerkonto im Feld
Facebook App ID an. - Geben Sie die Client-ID für eine Webanwendung aus der Google API Console im Feld
Google server ID an. - Geben Sie die AppID aus den WeChat-Anwendungseinstellungen unter
WeChat App ID an. - Geben Sie die AppID aus den QQ-Anwendungseinstellungen unter
QQ App ID an.
- Geben Sie die App-ID aus Ihrem Facebook-Entwicklerkonto im Feld
War dieser Artikel hilfreich?Vielen Dank für Ihr Feedback!Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Die native Authentifizierung ermöglicht es Spielern, Ihre Anwendung über die installierte Steam-Anwendung zu starten.
So richten Sie die native Authentifizierung ein:
- Konfigurieren Sie die stille Authentifizierung über Steam im Kundenportal.
- Konfigurieren Sie Ihr Unity-Projekt.
- Konfigurieren Sie die Ereignisverarbeitung.
- Ermöglichen Sie die Authentifizierung über Steam.
Unity-Projekt konfigurieren
- Erstellen Sie eine
steam_appid.txt
-Datei auf manuelle Weise, und geben Sie Ihre Anwendungs-ID aus Steam darin ein. Platzieren Sie die Datei im Anschluss imAssets
-Katalog Ihres Projekts.
Assets
die Datei steam_appid.txt
. Diese Datei enthält die Anwendungs-ID aus Steam für ein Demoprojekt.- Öffnen Sie Ihr Unity-Projekt.
- Navigieren Sie im Hauptmenü zu
Window > Xsolla > Edit Settings . - Gehen Sie im
Inspector -Fensterbereich wie folgt vor:- Aktivieren Sie das Kontrollkästchen
Use Steam authorization . - Geben Sie im Feld
Steam App ID Ihre Anwendungs-ID aus Steam an. Der Wert sollte mit jenem aus der Dateisteam_appid.txt
übereinstimmen.
- Aktivieren Sie das Kontrollkästchen
Ereignisverarbeitung einrichten
Für die Benutzerauthentifizierung über Steam sollten Sie ein session ticket
über die Methode SteamAuth
abrufen. Übermitteln Sie den empfangenen Wert beim Aufruf der Methode RequestTokenBy
. Infolgedessen erhalten Sie den Token, welcher im Rahmen der API zum Einsatz kommt.
Authentifizierung über Steam ermöglichen
- Erstellen Sie die Build Ihres Unity-Projekts für eine eigenständige Plattform.
- Starten Sie Steam und melden Sie sich an.
- Starten Sie Ihre Anwendung. Wen alles in Ordnung ist, wird das Steam-Pop-up-Fenster angezeigt.
Die Tokeninvalidierung verbessert die Sicherheit der Benutzerauthentifizierungsdaten in Ihrer Anwendung. Wenn die Option aktiviert ist, wird bei jeder Benutzerauthentifizierung der alte Token ungültig und durch einen neuen ersetzt.
Bei Nutzung des SDK erfolgt die Invalidierung des bestehenden Tokens und die Generierung eines neuen mithilfe der API-Aufrufe with_logout
den Wert 1
aufweist.
So aktivieren Sie die Tokeninvalidierung in Ihrem Unity-Projekt:
- Navigieren Sie im Hauptmenü zu
Window > Xsolla > Edit Settings . - Aktivieren Sie im
Inspector -Fensterbereich das KontrollkästchenEnable JWT invalidation .
Mithilfe des Xsolla-Startprogramms können Sie Ihre Anwendungen an Benutzer ausliefern und aktualisieren. Das Startprogramm verfügt über ein integriertes Autorisierungstool. Richten Sie die Autorisierung in Ihrer Anwendung über das Startprogramm ein, damit der Benutzername und das Passwort nicht erneut eingegeben werden müssen.
SDK und Launcher für das Zusammenspiel untereinander einrichten
- Konfigurieren Sie das Startprogramm im Kundenportal.
config.json
die Werte für folgende Objekte zu ändern:launcher_project_id
– geben Sie die Startprogramm-ID an. Diese finden Sie unter Kundenportal > Startprogramm > Allgemeine Einstellungen > Allgemeine Angabenlogin_project_id
– geben Sie die Login-ID an. Diese finden Sie unter Kundenportal > Startprogramm > Allgemeine Einstellungen > Authentifizierung
- Implementieren Sie die Autorisierungslogik des Startprogramms in Ihrer Anwendung.
- Generieren Sie eine Startprogramm-Installationsdatei und ein Build-Archiv.
- Erstellen Sie eine Anwendungs-Build.
- Laden Sie die Anwendungs-Build auf den Xsolla-Updateserver hoch.
Logik für die Authentifizierung über das Launcher implementieren
Der Ablauf für die Autorisierung in der Anwendung über das Startprogramm ist wie folgt:
- Der Benutzer autorisiert sich im Startprogramm.
- Der Benutzer installiert die Anwendung und führt sie aus.
- Das Startprogramm führt die Anwendung aus und übermittelt Benutzerparameter in der Befehlszeile. Der Autorisierungstoken wird im Parameter
xsolla-login-token
übermittelt. - Die Anwendung verarbeitet die Befehlszeilenparameter und erhält einen Token. Ein beispielhaftes Skript für die Tokenverarbeitung ist im Demoprojekt einsehbar.
- Die Anwendung validiert den empfangen Token. Ein beispielhaftes Skript für die Tokenvalidierung ist im Demoprojekt einsehbar.
- Die Anwendung autorisiert den Benutzer automatisch, ohne eine Autorisierungsseite anzuzeigen. Ein beispielhaftes Skript für die Benutzerautorisierung ist im Demoprojekt einsehbar.
XsollaLogin.Instance.Token
und XsollaStore.Instance.Token
.Anwendungs-Build erstellen
- Wechseln Sie zu Ihrem Unity-Projekt.
- Klicken Sie im Hauptmenü auf
Window > Xsolla > Edit Settings . Gehen Sie imInspector -Fensterbereich wie folgt vor:- Geben Sie im Feld
Project ID die Projekt-ID an. Diese finden Sie unter Kundenportal > Projekteinstellungen > Projekt-ID. - Geben Sie im Feld
Login ID die Login-ID an. Diese finden Sie unter Kundenportal > Startprogramm > Allgemeine Einstellungen > Authentifizierung.
- Geben Sie im Feld
- Führen Sie die Benutzerautorisierungsszene aus, in der der Token verarbeitet wird.
- Klicken Sie im Hauptmenü auf
File > Build settings und dann aufAdd Open Scenes . Stellen Sie sicher, dass die Autorisierungsszene an erster Stelle in der Liste hinzugefügt wird. - Klicken Sie auf
Build . - Geben Sie im Pop-up-Fenster den Pfad zu dem Verzeichnis an, in dem die fertige Build abzulegen ist.
Mit der Geräte-ID-Authentifizierung können Benutzer die Anwendung auf einem Mobilgerät nutzen, ohne Registrierungsdaten eingeben zu müssen. Wenn sich ein Benutzer zum ersten Mal mit der Geräte-ID bei der Anwendung anmeldet, wird automatisch ein neues Konto erstellt, ohne dass der Benutzer einen Benutzernamen, eine E-Mail-Adresse oder sonstige Daten eingeben muss.
Mit der Geräte-ID können Sie Benutzer auf einem oder mehreren Mobilgeräten im Hintergrund authentifizieren. Um diese Funktion nutzen zu können, sollte der Benutzer die Geräte-ID mit einem bestehenden Konto verknüpfen.
Das SDK unterstützt die Authentifizierung über die Mobilgeräte-ID unter Android und iOS.
Geräte-ID abrufen
Die Geräte-ID wird von der Plattform generiert und ist für Anwendungen verfügbar, die auf dem Mobilgerät installiert sind. Das SDK ruft den ID-Wert über die Plattform-API ab und verwendet ihn, um verschiedene Funktionen über die Xsolla-API auszuführen.
Die ID des iOS-Geräts wird in der Eigenschaft UIDevice.identifierForVendor übermittelt. Die standardmäßige Unity-Methode SystemInfo.deviceUniqueIdentifier dient dazu, die ID zu ermitteln.
Die ID des Android-Geräts wird in der Konstante android.provider.Settings.Secure.ANDROID_ID übermittelt. Das SDK verwendet seine eigene Logik, um die ID zu ermitteln, da die standardmäßige Unity-Methode die ID des Android-Geräts als MD5-Hashwert zurückgibt, der für Xsolla-API-Aufrufe ungeeignet ist.
SDK-Methoden
Das SDK implementiert Methoden für die folgenden Funktionen:
Authentifizierung
Name der SDK-Methode | Beschreibung |
---|---|
AuthViaDeviceID | Authentifiziert den Benutzer gegenüber der Anwendung anhand der aktuellen Geräte-ID. |
Konto-Upgrade
Name der SDK-Methode | Beschreibung |
---|---|
AddUsernameEmailAuthToAccount | Fügt dem aktuellen Konto einen Benutzernamen, eine E-Mail-Adresse und ein Passwort hinzu, die zur Authentifizierung verwendet werden können. |
LinkSocialProvider | Verknüpft ein soziales Netzwerk, das zur Authentifizierung verwendet werden kann, mit dem aktuellen Konto. |
Geräteverwaltung
Name der SDK-Methode | Beschreibung |
---|---|
GetUserDevices | Gibt eine Liste der Geräte zurück, die mit dem aktuellen Benutzerkonto verknüpft sind. |
LinkDeviceToAccount | Verknüpft das angegebene Gerät mit dem aktuellen Benutzerkonto. |
UnlinkDeviceFromAccount | Hebt die Verknüpfung des angegebenen Geräts mit dem aktuellen Benutzerkonto auf. |
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.