Spieler und Anmeldung

Gastkonten, die Neustarts überstehen, Anzeigenamen und das Verknüpfen von Gästen mit E-Mail oder Google.

Codekommentare und API-Namen bleiben auf Englisch, damit sie zu den SDKs passen.

Auf dieser Seite

Gast-Anmeldung#

Rufen Sie dies einmal beim Start auf. Die gespeicherte Sitzung wird wiederhergestellt (und bei Bedarf erneuert) oder ein neuer Gast angelegt, sodass derselbe Spieler seinen Fortschritt behält.

C#
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (signIn.Ok)
{
    var player = signIn.Value;
    Debug.Log(player.PlayerId + " " + player.DisplayName + " guest: " + player.IsGuest);
}
Neue Gäste sind auf 30 pro Netzwerk alle 15 Minuten begrenzt, was automatisierte Kontoerstellung verhindert.

Anzeigenamen#

Gäste erhalten einen generierten Namen wie Guest 4821. Spieler können einen eigenen wählen; Bestenlisten zeigen ihn an.

C#
var renamed = await Majacloud.Auth.SetDisplayNameAsync("Nova");
if (!renamed.Ok) Debug.Log(renamed.Error.Message); // e.g. Validation: too long

Beim Verknüpfen öffnet sich eine sichere Webseite auf Ihrem MAJACLOUD-Server, auf der sich der Spieler mit E-Mail und Passwort oder mit Google anmeldet oder registriert. Der Fortschritt des Gasts (Punktzahlen, Speicherstände, Wallet) wird auf dieses Konto übertragen, und das Spiel erhält die neue Sitzung – auf jedem Gerät.

C#
// Opens the sign-in page, waits for the player, then switches the session
var linked = await Majacloud.Auth.LinkAccountAsync(new MajacloudLinkOptions { ReturnUrl = "mygame://auth" });
if (linked.Ok) Debug.Log("Signed in as " + linked.Value.DisplayName);

// WebGL: browsers only open tabs from a click, so start first and open inside the handler
var flow = await Majacloud.Auth.StartLinkAsync(new MajacloudLinkOptions { OpenBrowser = false });
linkButton.onClick.AddListener(() => flow.Value.OpenInBrowser());
var result = await flow.Value.WaitForCompletionAsync();
  1. Das SDK erzeugt ein einmaliges Geheimnis (PKCE) und startet einen Anmeldeablauf.
  2. Der Spieler schließt die Anmeldung auf der Webseite ab; das SDK fragt den Status ab, bis der Ablauf abgeschlossen ist.
  3. Das SDK tauscht den Ablauf mithilfe des Geheimnisses gegen eine Sitzung ein, sodass ein gestohlener Link nutzlos ist.
  4. Abläufe verfallen nach 15 Minuten (verlängert, solange die Seite geöffnet ist).

Rückkehr ins Spiel#

Ohne Rücksprung-URL fordert die Seite Spieler auf, zum Spiel zurückzukehren. Um sie automatisch zurückzuschicken, fügen Sie Ihr eigenes URL-Schema (zum Beispiel mygame) unter API-Schlüssel ▸ Rücksprung-URLs der Spieleranmeldung hinzu und übergeben mygame://auth als Rücksprung-URL.

Events#

Reagieren Sie, wenn der Spieler wechselt, sich abmeldet oder die Sitzung nicht mehr erneuert werden kann:

C#
Majacloud.Auth.PlayerChanged += player => nameLabel.text = player?.DisplayName;
Majacloud.Auth.SignedOut += () => ShowTitleScreen();
Majacloud.Auth.SessionExpired += () => ShowSignIn();

Abmelden#

Beim Abmelden wird die Sitzung auf dem Server widerrufen und auf dem Gerät verworfen. Die nächste Anmeldung legt einen neuen Gast an.

C#
await Majacloud.Auth.SignOutAsync();   // revokes the session on the server
Majacloud.Auth.ClearLocalSession();   // or only forget it on this device

Spieler vom Server lesen#

Mit dem geheimen Schlüssel kann Ihr Server jeden Spieler lesen, einschließlich E-Mail-Adresse und Wallet-Guthaben:

JavaScript
// Node.js, created with secretKey
const found = await admin.server.getPlayer('player_3f9c…');
if (found.ok) console.log(found.value.player.email, found.value.player.wallets);

Im Dashboard#

Die Seite Spieler listet jeden Spieler mit Anmeldemethode, Punktzahlen, Speicherständen und Wallet auf. Dort können Sie einen Spieler umbenennen oder deaktivieren, überall abmelden, ihm einen Link zum Zurücksetzen des Passworts senden oder ihn löschen.

Durchsucht Seitentitel, Überschriften und Text.

↑↓ zum Navigieren ↵ zum Öffnen Esc zum Schließen