Authentifizierung
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.
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
- Erstellen Sie ein
RegistrationPage
-Skript, übernommen aus der Basisklasse MonoBehaviour. - Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im
Inspector -Fenster fest. - Fügen Sie Logiken hinzu, um den Klick auf die Registrierungsschaltfläche verarbeiten zu können:
- Abonnieren Sie in der Methode
Start
ein Klick-Ereignis. - Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
- Deklarieren Sie in dieser Methode die Variablen
username
,email
undpassword
, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite. - Rufen Sie die SDK-Methode
XsollaLogin.Instance.Registration
auf, und übermitteln Sie ihr die Variablenusername
,email
undpassword
sowie die folgenden Methoden:
- Abonnieren Sie in der Methode
OnSuccess
– wird nach erfolgreicher Registrierung aufgerufenOnError
– wird bei einem Problem aufgerufen
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:
- C#
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.
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
- Erstellen Sie ein
ResendConfirmationEmail
-Skript, übernommen aus der Basisklasse MonoBehaviour. - Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im
Inspector -Fenster fest. - Fügen Sie Logiken hinzu, um den Klick auf die "E-Mail erneut senden"-Schaltfläche verarbeiten zu können:
- Abonnieren Sie in der Methode
Start
ein Klick-Ereignis. - Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
- Deklarieren Sie in dieser Methode die Variable
username
, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite. - Rufen Sie die SDK-Methode
XsollaLogin.Instance.ResendEmail
auf, und übermitteln Sie ihr die Variableusername
sowie die MethodenOnSuccess
undOnError
.
- Abonnieren Sie in der Methode
Beispielhaftes Skript für eine Seite zum erneuten Senden einer E-Mail:
- C#
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
- Erstellen Sie ein
AutorizationPage
-Skript, übernommen aus der Basisklasse MonoBehaviour. - Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im
Inspector -Fenster fest. - Fügen Sie Logiken hinzu, um den Klick auf die Anmeldeschaltfläche verarbeiten zu können:
- Abonnieren Sie in der Methode
Start
ein Klick-Ereignis. - Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
- Deklarieren Sie in dieser Methode die Variablen
username
undpassword
, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite. Erstellen Sie einerememberMe
-Variable, und initialisieren Sie sie je nach Kontrollkästchenstatus, damit man beim Konto angemeldet bleiben kann. - Rufen Sie die SDK-Methode
XsollaLogin.Instance.SignIn
auf, und übermitteln Sie ihr die Variablenusername
,password
undrememberMe
sowie die MethodenOnSuccess
undOnError
.
- Abonnieren Sie in der Methode
token
übermittelt. Der Autorisierungstoken kommt in Anfragen an Xsolla-Server zum Einsatz.Beispielhaftes Skript für eine Anmeldeseite:
- C#
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
- Erstellen Sie ein
ResetPasswordPage
-Skript, übernommen aus der Basisklasse MonoBehaviour. - Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Seite, und legen Sie die Werte dafür im
Inspector -Fenster fest. - Fügen Sie Logiken hinzu, um den Klick auf die "Passwort zurücksetzen"-Schaltfläche verarbeiten zu können:
- Abonnieren Sie in der Methode
Start
ein Klick-Ereignis. - Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
- Deklarieren Sie in dieser Methode die Variable
username
, und initialisieren Sie sie entsprechend der Werte aus den Feldern auf der Seite. - Rufen Sie die SDK-Methode
XsollaLogin.Instance.ResetPassword
auf, und übermitteln Sie ihr die Variableusername
sowie die MethodenOnSuccess
undOnError
.
- Abonnieren Sie in der Methode
Beispielhaftes Skript für eine Seite zum Zurücksetzen des Passworts:
- C#
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.
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.
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
- Erstellen Sie ein
SocialAuthorizationPage
-Skript, übernommen aus der Basisklasse MonoBehaviour. - Deklarieren Sie Variablen für die Benutzeroberflächenelemente der Anmeldeseite der Anwendung, und legen Sie die Werte dafür im
Inspector -Fenster fest. - Fügen Sie Logiken hinzu, um den Klick auf die Anmeldeschaltfläche verarbeiten zu können:
- Abonnieren Sie in der Methode
Start
ein Klick-Ereignis. - Fügen Sie eine anonyme Methode hinzu, die nach Klick auf die Schaltfläche aufgerufen wird.
- 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-MethodeGetSocialNetworkAuthUrl
, indem Sie den WertFacebook
im ParameterSocialProvider
übermitteln. - Rufen Sie zum Öffnen eines Browsers die Methode
BrowserHelper.Instance.Open
auf. Um einen integrierten Browser zu nutzen, übermitteln Sie die Variableurl
und den Werttrue
an die Methode.
- Abonnieren Sie in der Methode
- Um einen Token abzurufen und den Browser zu schließen, tracken sie die Änderung der Seiten-URL nach der erfolgreichen Benutzerregistrierung:
- Deklarieren Sie eine
singlePageBrowser
-Variable, und initialisieren Sie sie über die SDK-MethodeBrowserHelper.Instance.GetLastBrowser
. - Abonnieren Sie das URL-Änderungsereignis einer aktiven Seite, und legen als Handler die Methode
OnUrlChanged
fest.
- Deklarieren Sie eine
- Um einen Token abzurufen und den Browser zu schließen, tracken sie die Änderung der Seiten-URL nach der erfolgreichen Benutzerregistrierung:
- Implementieren Sie den Abruf des Tokens:
- Parsen Sie mithilfe der Dienstprogrammmethode
ParseUtils.TryGetValueFromUrl
die URL einer in der MethodeOnUrlChanged
übermittelten aktiven Seite. - Prüfen Sie, ob ein Authentifizierungscode in der URL der aktiven Seite vorliegt. Die Methode
ParseUtils.TryGetValueFromUrl
übermittelt einen Authentifizierungscode in der Variablecode
. - Rufen Sie die SDK-Methode
ExchangeCodeToToken
auf, und übermitteln Sie ihr einecode
-Variable sowie die folgenden Methoden:OnSuccess
— wird nach erfolgreicher Registrierung aufgerufenOnError
— wird bei einem Problem aufgerufen
- Parsen Sie mithilfe der Dienstprogrammmethode
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.
- Nachdem Sie den Token abgerufen haben, löschen Sie ein Spielobjekt mit einem Browser.
Beispielhaftes Skript für eine Anmeldeseite:
- C#
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
}
}
}
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.