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
Bei aktivierter Option erfolgt die Benutzerregistrierung und ‑authentifizierung mithilfe der API-Aufrufe
So konfigurieren Sie die OAuth 2.0-Authentifizierung:
- Konfigurieren Sie die OAuth 2.0-Authentifizierung für Login-Projekte im Kundenportal.
- Initialisieren Sie die Bibliothek.
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.
Bibliothek initialisieren
Fügen Sie dem Quellcode Ihres Android-Projekts folgende Zeile hinzu und geben Sie dabei folgende Parameter an, um die Bibliothek zu initialisieren:
login-project-id
– Login-ID. Diese finden Sie unter Kundenportal > Login-Einstellungen > Login-ID.oauth2-client-id
– Die bei der OAuth 2.0-Einrichtung im Kundenportal erhaltene Client-ID.
- kotlin
val loginConfig = LoginConfig.OauthBuilder()
.setProjectId("login-project-id")
.setOauthClientId("oauth2-client-id")
.build()
XLogin.init(applicationContext, loginConfig)
Folgende Methoden sind für die Arbeit mit Aktualisierungstoken in der Login-Bibliothek integriert:
XLogin.refreshToken
– aktualisiert den Token.XLogin.getToken
– gibt den aktuellen Token zurück.XLogin.isTokenExpired
– gibttrue
zurück, falls der Token abgelaufen ist.
War dieser Artikel hilfreich?
- Store
- Payments
- Inventory
Sie können die Store-, Payments- und Inventory-Bibliothek 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 Bezahlstation 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
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
Ü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.Zugriffstoken der Bezahlstation nutzen
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 Methode XStore.init
.
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.
War dieser Artikel hilfreich?
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:
- 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.
- Installieren Sie Bibliotheken für Authentifizierungen über soziale Netzwerke. Öffnen Sie dazu die Datei
build.gradle
Ihrer Anwendung, und fügen Sie im Abhängigkeiten-Abschnitt die folgenden Zeilen hinzu, wobei<version_number>
der erforderlichen Bibliotheksversion entspricht:- Für die Authentifizierung über Facebook:
- groovy
implementation 'com.xsolla.android:login-facebook:<version_number>'
- Für die Authentifizierung über Google:
- groovy
implementation 'com.xsolla.android:login-google:<version_number>'
- Für die Authentifizierung über WeChat:
- groovy
implementation 'com.xsolla.android:login-wechat:<version_number>'
- Für die Authentifizierung über QQ:
- groovy
implementation 'com.xsolla.android:login-qq:<version_number>'
- Initialisieren Sie die Login-Bibliothek mit den folgenden Parametern:
facebook_id
: App-ID aus dem Facebook-Entwicklerkontogoogle_id
: Client-ID für die Webanwendung aus der Google API Consolewechat_id
: AppID aus dem WeChat-Entwicklerkonto.qq_id
: AppID aus dem QQ-Entwicklerkonto
Beispielhafte Initialisierung der Bibliothek beim Authentifizieren über JWT:
- kotlin
val loginConfig = LoginConfig.JwtBuilder()
.setProjectId("login-project-id")
.setSocialConfig(XLogin.SocialConfig(
facebookAppId = "facebook_id",
googleServerId = "google_id",
wechatAppId = "wechat_id",
qqAppId = "qq_id"
))
.build()
XLogin.init(applicationContext, loginConfig)
Beispielhafte Initialisierung der Bibliothek beim Authentifizieren über OAuth 2.0:
- kotlin
val loginConfig = LoginConfig.OauthBuilder()
.setProjectId("login-project-id")
.setOauthClientId("oauth2-client-id")
.setSocialConfig(XLogin.SocialConfig(
facebookAppId = "facebook_id",
googleServerId = "google_id",
wechatAppId = "wechat_id",
qqAppId = "qq_id"
))
.build()
XLogin.init(applicationContext, loginConfig)
- Damit die Authentifizierung über WeChat möglich ist, muss der Anwendungscode modifiziert werden:
- Fügen Sie dem
<your_package_name>.wxapi
-Paket die KlasseWXEntryActivity
hinzu, wobei<your_package_name>
dem Namen Ihres Anwendungspakets entspricht:
- Fügen Sie dem
- kotlin
package <your_package_name>.wxapi
import android.app.Activity
import android.os.Bundle
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.xsolla.android.login.social.LoginSocial
class WXEntryActivity : Activity(), IWXAPIEventHandler {
private lateinit var iwxapi: IWXAPI
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
iwxapi = WXAPIFactory.createWXAPI(this, LoginSocial.wechatAppId, false)
iwxapi.handleIntent(intent, this)
finish()
}
override fun onReq(req: BaseReq?) {
}
override fun onResp(resp: BaseResp) {
LoginSocial.wechatResult = resp
}
}
- Fügen Sie Ihrer
AndroidManifest.xml
-Datei die folgenden Elemente hinzu:
- Fügen Sie Ihrer
- kotlin
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true">
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 Paketnamen Ihrer Android-Anwendung im Feld Google Play Package-Name an.
- Geben Sie im Feld Klassenname einen zulässigen Klassennamen für die Hauptaktivität an.
- Generieren Sie einen Hash-Key, und geben Sie ihn 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 Android-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 Paketnamen aus Ihrer Android-Anwendung im Feld Paketname an.
- Rufen Sie den SHA-Schlüssel ab.
- Geben Sie den im vorherigen Schritt generierten SHA-Schlüssel 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.
War dieser Artikel hilfreich?
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 der Login-Bibliothek erfolgt die Invalidierung des bestehenden Tokens und die Generierung eines neuen mithilfe der API-Aufrufe with_logout
den Wert 1
aufweist.
Um die Tokeninvalidierung in Ihrem Android Projekt zu verwenden, müssen Sie den Parameter withLogout = true
in den Methoden XLogin.login
, XLogin.startSocialAuth
und XLogin.finishSocialAuth
übermitteln.
War dieser Artikel hilfreich?
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.
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 Android-Geräts wird in der Konstante android.provider.Settings.Secure.ANDROID_ID übermittelt.
Das SDK implementiert Methoden für die folgenden Funktionen.
Authentifizierung
Name der SDK-Methode | Beschreibung |
---|---|
authenticateViaDeviceId | Authentifiziert den Benutzer gegenüber der Anwendung anhand der aktuellen Geräte-ID. |
Konto-Upgrade
Name der SDK-Methode | Beschreibung |
---|---|
linkEmailPassword | Fügt dem aktuellen Konto einen Benutzernamen, eine E-Mail-Adresse und ein Passwort hinzu, die zur Authentifizierung verwendet werden können. |
createSocialAccountLinkingIntent | Verknüpft ein soziales Netzwerk, das zur Authentifizierung verwendet werden kann, mit dem aktuellen Konto. |
Geräteverwaltung
Name der SDK-Methode | Beschreibung |
---|---|
getUsersDevices | 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. |
War dieser Artikel hilfreich?
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.