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:
- O usuário não autorizado inicia o jogo.
- O jogo relaciona o usuário com as informações da sessão.
- Depois de um certo tempo, o jogo pede que o usuário se cadastre para continuar.
- O jogo envia uma solicitação de cadastro com as informações da sessão passadas para o servidor Xsolla Login.
- 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.
- O jogo transfere o progresso para o usuário registrado.
- O usuário continua a jogar como autorizado.
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:
- Passe informações sobre a sessão do usuário ao se cadastrar.
- 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
Exemplo da solicitação (identificador da sessão do usuário):
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):
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):
- html
<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):
- html
<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
- json
{
"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
- json
{
"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"
}
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.