Authentifizierung

In den folgenden Schritt-für-Schritt-Anleitungen erfahren Sie mehr über die grundlegenden SDK-Funktionen.

Benutzeranmeldung über Benutzername/E-Mail-Adresse und Passwort

Diese Anleitung erläutert, wie sich mittels SDK-Methoden Folgendes implementieren lässt:

  • Benutzerregistrierung
  • erneutes Senden einer E-Mail zum Bestätigen der Registrierung
  • Benutzeranmeldung
  • Zurücksetzen des Benutzerpassworts

Sie können Benutzer anhand ihres Benutzernamens oder ihrer E-Mail-Adresse authentifizieren. In den folgenden Beispielen authentifizieren wir Benutzer anhand ihres Benutzernamens, während die E-Mail-Adresse zur Bestätigung der Registrierung und zum Zurücksetzen des Passworts verwendet wird.

Hinweis
Wenn Sie ein Login-Widget auf Ihrer Website verwenden (z. B. in einem Onlineshop), müssen auf Ihrer Website und in Ihrer Anwendung dieselben Benutzerauthentifizierungsmethoden implementiert sein. Das Widget verwendet standardmäßig die E-Mail-Adresse zur Authentifizierung. Um die Benutzeranmeldung über Benutzernamen einzurichten, wenden Sie sich an Ihren Account Manager.

Die Logiken und die Benutzeroberfläche in den Beispielen sind einfach gehalten und können in Ihrer Anwendung durchaus komplexer ausfallen. Eine mögliche Option zur Implementierung eines Authentifizierungssystems ist im Demoprojekt beschrieben.

Benutzerregistrierung implementieren

Dieses Tutorial beschreibt die Implementierung der folgenden Logik:

Benutzeroberfläche erstellen

Erstellen Sie eine Szene für eine Registrierungsseite und fügen Sie ihr folgende Elemente hinzu:

  • Benutzername-Feld
  • E-Mail-Adresse-Feld
  • Benutzerpasswort-Feld
  • Anmeldeschaltfläche

Das folgende Bild zeigt einen beispielhaften Seitenaufbau.

Page Controller erstellen

  1. Erstellen Sie ein RegistrationPage-Skript, übernommen aus der Basisklasse MonoBehaviour.
  2. Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im Inspector-Fenster fest.
  3. Fügen Sie Logiken hinzu, um den Klick auf die Registrierungsschaltfläche verarbeiten zu können:
    1. Abonnieren Sie in der Methode Start ein Klick-Ereignis.
    2. Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
    3. Deklarieren Sie in dieser Methode die Variablen username, email und password, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite.
    4. Rufen Sie die SDK-Methode XsollaLogin.Instance.Registration auf, und übermitteln Sie ihr die Variablen username, email und password sowie die folgenden Methoden:
      • OnSuccess – wird nach erfolgreicher Registrierung aufgerufen
      • OnError – wird bei einem Problem aufgerufen
Hinweis

In den Skriptbeispielen rufen die Methoden OnSuccess und OnError die Standardmethode Debug.Log auf. Der Fehlercode und die ‑beschreibung werden im Parameter error übermittelt.

Sie können weitere Aktionen hinzufügen, z. B. eine Anmeldeseite nach erfolgreicher Registrierung oder eine Seite für das erneute Senden einer Registrierungsbestätigungs-E-Mail öffnen.

Beispielhaftes Skript für eine Registrierungsseite:

Copy
Full screen
Small screen

using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
	public class RegistrationPage : MonoBehaviour
	{
		// Declaration of variables for UI elements on the page

		[SerializeField] private InputField UsernameInput;

		[SerializeField] private InputField EmailInputField;

		[SerializeField] private InputField PasswordInputField;

		[SerializeField] private Button RegisterButton;

		private void Start()
		{
			// Handling the button click
			RegisterButton.onClick.AddListener(() =>
			{
				var username = UsernameInput.text;
				var email = EmailInputField.text;
				var password = PasswordInputField.text;

				XsollaLogin.Instance.Registration(username, email, password, onSuccess: OnSuccess, onError: OnError);
			});
		}

		private void OnSuccess()
		{
			UnityEngine.Debug.Log("Registration successful");
			// Some actions
		}

		private void OnError(Error error)
		{
			UnityEngine.Debug.Log($"Registration failed. Description: {error.errorMessage}");
			// Some actions
		}
	}
}

E-Mail für die Registrierungsbestätigung einrichten

Nach erfolgreicher Registrierung erhält der Benutzer eine E-Mail für die Registrierungsbestätigung an eine angegebene E-Mail-Adresse gesendet. Im Kundenportal können Sie die E-Mails individualisieren.

Wenn Sie eine Android-Anwendung entwickeln, richten Sie Deep-Links ein, damit Benutzer zur Anwendung weitergeleitet werden, nachdem sie die Registrierung bestätigt haben.

Hinweis
Sie können die Registrierungsbestätigung per E-Mail-Adresse deaktivieren, wenn Ihre Sicherheitsstandards dies gestatten. Wenden Sie sich dafür an Ihren Account Manager oder kontaktieren Sie uns unter csm@xsolla.com.

Anfrage zum erneuten Senden einer Registrierungsbestätigungs-E-Mail implementieren

Dieses Tutorial beschreibt die Implementierung der folgenden Logik:

Benutzeroberfläche erstellen

Erstellen Sie eine Szene für eine Seite zum erneuten Senden einer Bestätigungs-E-Mail und fügen Sie ihr folgende Elemente hinzu:

  • Benutzername-/E-Mail-Adresse-Feld
  • “E-Mail erneut senden”-Schaltfläche

Das folgende Bild zeigt einen beispielhaften Seitenaufbau.

Page Controller erstellen

  1. Erstellen Sie ein ResendConfirmationEmail-Skript, übernommen aus der Basisklasse MonoBehaviour.
  2. Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im Inspector-Fenster fest.
  3. Fügen Sie Logiken hinzu, um den Klick auf die "E-Mail erneut senden"-Schaltfläche verarbeiten zu können:
    1. Abonnieren Sie in der Methode Start ein Klick-Ereignis.
    2. Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
    3. Deklarieren Sie in dieser Methode die Variable username, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite.
    4. Rufen Sie die SDK-Methode XsollaLogin.Instance.ResendEmail auf, und übermitteln Sie ihr die Variable username sowie die Methoden OnSuccess und OnError.

Beispielhaftes Skript für eine Seite zum erneuten Senden einer E-Mail:

Copy
Full screen
Small screen

using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
	public class ResendConfirmationEmail : MonoBehaviour
	{
		// Declaration of variables for UI elements on the page

		[SerializeField] private InputField UsernameInput;

		[SerializeField] private Button ResendEmailButton;

		private void Start()
		{
			// Handling the button click
			ResendEmailButton.onClick.AddListener(() =>
			{
				var username = UsernameInput.text;

				XsollaLogin.Instance.ResendConfirmationLink(username, onSuccess: OnSuccess, onError: OnError);
			});
		}

		private void OnSuccess()
		{
			UnityEngine.Debug.Log("Resend confirmation email successful");
			// Some actions
		}

		private void OnError(Error error)
		{
			UnityEngine.Debug.Log($"Resend confirmation email failed. Description: {error.errorMessage}");
			// Some actions
		}
	}
}

Nach erfolgreicher Anfrage erhält der Benutzer eine E-Mail zur Registrierungsbestätigung an die bei der Registrierung angegebene E-Mail-Adresse.

Benutzeranmeldung implementieren

Dieses Tutorial beschreibt die Implementierung der folgenden Logik:

Benutzeroberfläche erstellen

Erstellen Sie eine Szene für eine Anmeldeseite und fügen Sie ihr folgende Elemente hinzu:

  • Benutzername-Feld
  • Passwort-Feld
  • “Angemeldet bleiben”-Kontrollkästchen
  • Anmeldeschaltfläche

Das folgende Bild zeigt einen beispielhaften Seitenaufbau.

Page Controller erstellen

  1. Erstellen Sie ein AutorizationPage-Skript, übernommen aus der Basisklasse MonoBehaviour.
  2. Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im Inspector-Fenster fest.
  3. Fügen Sie Logiken hinzu, um den Klick auf die Anmeldeschaltfläche verarbeiten zu können:
    1. Abonnieren Sie in der Methode Start ein Klick-Ereignis.
    2. Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
    3. Deklarieren Sie in dieser Methode die Variablen username und password, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite. Erstellen Sie eine rememberMe-Variable, und initialisieren Sie sie je nach Kontrollkästchenstatus, damit man beim Konto angemeldet bleiben kann.
    4. Rufen Sie die SDK-Methode XsollaLogin.Instance.SignIn auf, und übermitteln Sie ihr die Variablen username, password und rememberMe sowie die Methoden OnSuccess und OnError.
Hinweis
Nach erfolgreicher Benutzeranmeldung wird der Autorisierungstoken im Parameter token übermittelt. Der Autorisierungstoken kommt in Anfragen an Xsolla-Server zum Einsatz.

Beispielhaftes Skript für eine Anmeldeseite:

Copy
Full screen
Small screen

using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
	public class AuthorizationPage : MonoBehaviour
	{
		// Declaration of variables for UI elements on the page

		[SerializeField] private InputField UsernameInput;

		[SerializeField] private InputField PasswordInputField;

		[SerializeField] private Toggle RememberMeToggle;

		[SerializeField] private Button AuthorizationButton;

		private void Start()
		{
			// Handling the button click

			AuthorizationButton.onClick.AddListener(() =>
			{
				var username = UsernameInput.text;
				var password = PasswordInputField.text;
				var rememberMe = RememberMeToggle.isOn;

				XsollaLogin.Instance.SignIn(username, password, rememberMe, null, onSuccess: OnSuccess, onError: OnError);
			});
		}

		private void OnSuccess(string token)
		{
			UnityEngine.Debug.Log($"Authorization successful. Token: {token}");
			// Some actions
		}

		private void OnError(Error error)
		{
			UnityEngine.Debug.Log($"Authorization failed. Description: {error.errorMessage}");
			// Some actions
		}
	}
}

Zurücksetzen von Passwörtern implementieren

Dieses Tutorial beschreibt die Implementierung der folgenden Logik:

Benutzeroberfläche erstellen

Erstellen Sie eine Szene für eine “Passwort zurücksetzen”-Seite und fügen Sie der Seite folgende Elemente hinzu:

  • Benutzername-/E-Mail-Adresse-Feld
  • “Passwort zurücksetzen”-Schaltfläche

Das folgende Bild zeigt einen beispielhaften Seitenaufbau.

Page Controller erstellen

  1. Erstellen Sie ein ResetPasswordPage-Skript, übernommen aus der Basisklasse MonoBehaviour.
  2. Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im Inspector-Fenster fest.
  3. Fügen Sie Logiken hinzu, um den Klick auf die "Passwort zurücksetzen"-Schaltfläche verarbeiten zu können:
    1. Abonnieren Sie in der Methode Start ein Klick-Ereignis.
    2. Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
    3. Deklarieren Sie in dieser Methode die Variable username, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite.
    4. Rufen Sie die SDK-Methode XsollaLogin.Instance.ResetPassword auf, und übermitteln Sie ihr die Variable username sowie die Methoden OnSuccess und OnError.

Beispielhaftes Skript für eine Seite zum Zurücksetzen des Passworts:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
	public class ResetPasswordPage : MonoBehaviour
	{
		// Declaration of variables for UI elements on the page

		[SerializeField] private InputField UsernameInput;

		[SerializeField] private Button ResetPasswordButton;

		private void Start()
		{
			// Handling the button click

			ResetPasswordButton.onClick.AddListener(() =>
			{
				var username = UsernameInput.text;

				XsollaLogin.Instance.ResetPassword(username, OnSuccess, OnError);
			});
		}

		private void OnSuccess()
		{
			UnityEngine.Debug.Log("Password reset successful");
			// Some actions
		}

		private void OnError(Error error)
		{
			UnityEngine.Debug.Log($"Password reset failed. Description: {error.errorMessage}");
			// Some actions
		}
	}
}

Nach einer erfolgreichen Anfrage zum Zurücksetzen des Passworts erhält der Benutzer eine E-Mail mit einem entsprechenden Link. Im Kundenportal können Sie unter Ihr Login-Projekt > Allgemeine Einstellungen > URL > Rückruf-URL eine URL-Adresse oder einen Pfad festlegen, an die bzw. der der Benutzer nach einer erfolgreichen Authentifizierung, der Bestätigung seiner E-Mail-Adresse oder dem Zurücksetzen seines Passworts weitergeleitet wird.

War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Ausblenden

Anmeldung über soziale Netzwerke

Diese Anleitung erläutert, wie Sie mithilfe von SDK-Methoden die Benutzerregistrierung und ‑anmeldung über Social-Media-Konten implementieren.

Im Gegensatz zur Benutzerauthentifizierung über Benutzername/E-Mail-Adresse und Passwort müssen Sie für die Benutzerregistrierung keine separate Logik implementieren. Wenn die erstmalige Anmeldung des Benutzers über ein soziales Netzwerk erfolgt, wird automatisch ein neues Konto erstellt.

Wenn Sie in Ihrer Anwendung die Anmeldung über soziale Netzwerke als alternative Authentifizierungsmethode implementiert haben, wird das Social-Media-Konto automatisch mit einem bestehenden Benutzerkonto verknüpft, sofern die folgenden Bedingungen erfüllt sind:

  • Ein Benutzer, der sich mittels Benutzername/E-Mail-Adresse und Passwort registriert hat, meldet sich über sein Social-Media-Konto bei Ihrer Anwendung an.
  • Das soziale Netzwerk gibt eine E-Mail-Adresse zurück.
  • Die E-Mail-Adresse des Benutzers in einem sozialen Netzwerk entspricht derselben E-Mail-Adresse, die für die Anmeldung bei Ihrer Anwendung verwendet wird.
Hinweis
Sie können die manuelle Verknüpfung von Social-Media-Konten implementieren. Fügen Sie dazu Ihrer Anwendung eine Seite hinzu, auf der Benutzer ihr Social-Media-Konto mit ihrem Benutzerkonto verknüpfen können. Verwenden Sie dafür im Page Controller die SDK-Methode LinkSocialProvider.

Dieses Tutorial beschreibt die Implementierung der folgenden Logik:

Die Beispiele zeigen die Einrichtung der Benutzeranmeldung über ein Twitter-Konto. Andere soziale Netzwerke lassen sich auf dieselbe Weise einrichten.

Die Logiken und die Benutzeroberfläche in den Beispielen sind einfach gehalten und können in Ihrer Anwendung durchaus komplexer ausfallen. Eine mögliche Option zur Implementierung eines Authentifizierungssystems ist im Demoprojekt beschrieben.

Benutzeroberfläche erstellen

Erstellen Sie eine Szene für eine Anmeldeseite, und fügen Sie die Schaltfläche für das Anmelden über soziale Netzwerke hinzu. Das folgende Bild zeigt einen beispielhaften Seitenaufbau.

Page Controller erstellen

  1. Erstellen Sie ein SocialAuthorizationPage-Skript, übernommen aus der Basisklasse MonoBehaviour.
  2. Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Anmeldeseite der Anwendung, und legen Sie die Werte dafür im Inspector-Fenster fest.
  3. Fügen Sie Logiken hinzu, um den Klick auf die Anmeldeschaltfläche verarbeiten zu können:
    1. Abonnieren Sie in der Methode Start ein Klick-Ereignis.
    2. Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
    3. Deklarieren Sie die Variable url in einer anonymen Methode, um die URL der Anmeldeseite übermitteln zu können. Initialisieren Sie diese Variable durch die SDK-Methode GetSocialNetworkAuthUrl, indem Sie den Wert Facebook im Parameter SocialProvider übermitteln.
    4. Rufen Sie zum Öffnen eines Browsers die Methode BrowserHelper.Instance.Open auf. Um einen integrierten Browser zu nutzen, übermitteln Sie die Variable url und den Wert true an die Methode.
Hinweis
Die Anmeldung über soziale Netzwerke ist in externen Browsern nicht möglich. Das SDK enthält einen integrierten Browser, entwickelt von Xsolla. Sie können entweder den integrierten Browser von Xsolla oder eine andere integrierte Browser-Lösung verwenden.
    1. Um einen Token abzurufen und den Browser zu schließen, tracken sie die Änderung der Seiten-URL nach der erfolgreichen Benutzerregistrierung:
      1. Deklarieren Sie eine singlePageBrowser-Variable, und initialisieren Sie sie über die SDK-Methode BrowserHelper.Instance.GetLastBrowser.
      2. Abonnieren Sie das URL-Änderungsereignis einer aktiven Seite, und legen als Handler die Methode OnUrlChanged fest.
  1. Implementieren Sie den Abruf des Tokens:
    1. Parsen Sie mithilfe der Dienstprogrammmethode ParseUtils.TryGetValueFromUrl die URL einer in der Methode OnUrlChanged übermittelten aktiven Seite.
    2. Prüfen Sie, ob ein Authentifizierungscode in der URL der aktiven Seite vorliegt. Die Methode ParseUtils.TryGetValueFromUrl übermittelt einen Authentifizierungscode in der Variable code.
    3. Rufen Sie die SDK-Methode ExchangeCodeToToken auf, und übermitteln Sie ihr eine code-Variable sowie die folgenden Methoden:
      • OnSuccess — wird nach erfolgreicher Registrierung aufgerufen
      • OnError — wird bei einem Problem aufgerufen
Hinweis

In den Skriptbeispielen rufen die Methoden OnSuccess und OnError die Standardmethode Debug.Log auf. Sie können weitere Aktionen hinzufügen.

Wenn sich ein Benutzer erfolgreich anmeldet, wird der Autorisierungstoken im Parameter token übermittelt. Dieser Token kommt in Anfragen an Xsolla-Server zum Einsatz. Tritt ein Fehler auf, werden der Fehlercode und die ‑beschreibung im Parameter error übermittelt.

    1. Nachdem Sie den Token abgerufen haben, löschen Sie ein Spielobjekt mit einem Browser.

Beispielhaftes Skript für eine Anmeldeseite:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
	public class SocialAuthorizationPage : MonoBehaviour
	{
		// Declaration of variables for UI elements on the page

		[SerializeField] private Button FacebookButton;

		private void Start()
		{
			// Handling the button click

			FacebookButton.onClick.AddListener(() =>
			{
				// Opening browser

				var url = XsollaLogin.Instance.GetSocialNetworkAuthUrl(SocialProvider.Facebook);
				BrowserHelper.Instance.Open(url, true);

				// Determining the end of authentication
				BrowserHelper.Instance.InAppBrowser.AddUrlChangeHandler(OnUrlChanged);
			});
		}

		// Getting token
		private void OnUrlChanged(string url)
		{
			if (ParseUtils.TryGetValueFromUrl(url, ParseParameter.code, out var code))
			{
				XsollaLogin.Instance.ExchangeCodeToToken(code, OnSuccess, OnError);
				Destroy(BrowserHelper.Instance.gameObject);
			}
		}

		private void OnSuccess(string token)
		{
			UnityEngine.Debug.Log($"Authorization successful. Token: {token}");
			// Some actions
		}

		private void OnError(Error error)
		{
			UnityEngine.Debug.Log($"Authorization failed. Description: {error.errorMessage}");
			// Some actions
		}
	}
}
War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Ausblenden
Letztmalig aktualisiert: 10. Oktober 2023

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!