Login / Cadastro atrasado em jogos de navegador
  Voltar aos Documentos

Login

Cadastro atrasado em jogos de navegador

Como funciona

O usuário pode iniciar um jogo em um navegador sem se cadastrar. Após um certo tempo, o usuário será solicitado a se cadastrar e seu progresso no jogo será salvo. O tempo de espera para o cadastro deve ser implementado no lado do jogo.

O fluxo de interação entre o usuário e o jogo é o seguinte:

  1. O usuário não autorizado inicia o jogo.
  2. O jogo relaciona o usuário com as informações da sessão.
  3. Depois de um certo tempo, o jogo pede que o usuário se cadastre para continuar.
  4. O jogo envia uma solicitação de cadastro com as informações da sessão passadas para o servidor Xsolla Login.
  5. O servidor Xsolla Login cadastra o usuário. Como resultado do cadastro, as informações sobre a sessão são passadas no JWT do usuário.
  6. O jogo transfere o progresso para o usuário registrado.
  7. O usuário continua a jogar como autorizado.

Observação
O identificador de sessão ou cadeia de caracteres JSON com informações sobre o progresso do usuário é passado como informações sobre a sessão do usuário.

Quem pode usar

Parceiros que já integraram o Login e têm um jogo de navegador.

Como obtê-lo

Para salvar o progresso do usuário após o cadastro no jogo:

  1. Passe informações sobre a sessão do usuário ao se cadastrar.
  2. Transfira o progresso do jogo para o usuário.

Passagem de informações sobre a sessão do usuário

A transmissão de informações sobre a sessão do usuário depende da integração do Login:

Integração via Login API

Passe o parâmetro payload para a solicitação Register new user. Especifique informações sobre a sessão do usuário como o valor para esse parâmetro.

Exemplo da solicitação (identificador da sessão do usuário):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Exemplo da solicitação (cadeia de caracteres JSON com informações sobre o progresso do usuário):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2} HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=%7B%22coins%22%3A120%2C%22lvl%22%3A2%7D' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Integração via Login widget

Adicione o parâmetro payload ao código de inicialização do widget. Especifique informações sobre a sessão do usuário como o valor para esse parâmetro.

Exemplo do código de inicialização do widget (identificador da sessão do usuário):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: 'my_session_123'
});
</script>

Exemplo do código do widget de inicialização (cadeia de caracteres JSON com informações sobre o progresso do usuário):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: '{"coins":120,"lvl":2}'
});
</script>

Transferência do progresso do jogo para o usuário

Após o cadastro, as informações sobre a sessão do usuário são passadas na declaração payload do JWT do usuário. Use essas informações para transferir o progresso recebido durante a sessão. Você pode encontrar o identificador do usuário cadastrado na declaração sub do JWT do usuário.

Exemplo do JWT payload (identificador da sessão do usuário):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "my_session_123",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}

Exemplo do JWT payload (cadeia de caracteres JSON com informações sobre o progresso do usuário):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "{\"coins\":120,\"lvl\":2}",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}
Este artigo foi útil?
Obrigado!
Podemos melhorar alguma coisa? Mensagem
Que pena ouvir isso
Explique porque este artigo não foi útil para você. Mensagem
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
Avalie esta página
Avalie esta página
Podemos melhorar alguma coisa?

Não quero responder

Obrigado pelo seu feedback!
Última atualização: 22 de Janeiro de 2024

Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!