Jogadores e login

Contas de convidado que sobrevivem a reinicializações, nomes de exibição e vinculação de convidados a e-mail ou Google.

Comentários de código e nomes da API ficam em inglês para corresponder aos SDKs.

Nesta página

Login como convidado#

Chame isto uma vez na inicialização. A chamada restaura a sessão salva (renovando-a quando necessário) ou cria um novo convidado, para que o mesmo jogador mantenha o progresso.

C#
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (signIn.Ok)
{
    var player = signIn.Value;
    Debug.Log(player.PlayerId + " " + player.DisplayName + " guest: " + player.IsGuest);
}
Novos convidados são limitados a 30 por rede a cada 15 minutos, o que impede a criação de contas por scripts.

Nomes de exibição#

Convidados recebem um nome gerado, como Guest 4821. Os jogadores podem escolher o próprio nome, e os placares o exibem.

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

A vinculação abre uma página web segura no seu servidor MAJACLOUD, onde o jogador entra ou se cadastra com e-mail e senha ou com o Google. O progresso do convidado (pontuações, salvamentos, carteira) passa para essa conta, e o jogo recebe a nova sessão — em qualquer dispositivo.

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. O SDK cria um segredo de uso único (PKCE) e inicia um fluxo de login.
  2. O jogador conclui o processo na página web; o SDK consulta o status até o fluxo terminar.
  3. O SDK troca o fluxo por uma sessão usando o segredo, então um link roubado não serve para nada.
  4. Os fluxos expiram após 15 minutos (o prazo é estendido enquanto a página estiver aberta).

Voltando ao jogo#

Sem uma URL de retorno, a página pede aos jogadores que voltem ao jogo. Para trazê-los de volta automaticamente, adicione seu esquema de URL personalizado (por exemplo, mygame) em Chaves de API ▸ URLs de retorno do login de jogadores e passe mygame://auth como URL de retorno.

Eventos#

Reaja quando o jogador mudar, sair ou quando a sessão não puder mais ser renovada:

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

Sair#

Sair revoga a sessão no servidor e a apaga do dispositivo. O próximo login cria um novo convidado.

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

Ler jogadores do seu servidor#

Com a chave secreta, seu servidor pode ler qualquer jogador, incluindo e-mail e saldos da carteira:

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);

No painel#

A página Jogadores lista cada jogador com o método de login, as pontuações, os salvamentos e a carteira. Ali você pode renomear ou desativar um jogador, desconectá-lo de todos os dispositivos, enviar um link de redefinição de senha ou excluí-lo.

Busca em títulos de páginas, seções e texto.

↑↓ para navegar ↵ para abrir Esc para fechar