Autenticação de usuário no jogo
Como funciona
O Launcher envia os dados dos usuários, autenticados através do aplicativo de desktop, para o jogo no parâmetro –xsolla-login-token
no formato JWT. Você pode usar esse parâmetro para configurar a autenticação automática do usuário no jogo.
Principais reivindicações do JWT
Um token conterá as principais declarações após a autenticação ou confirmação do endereço de e-mail. A presença dessas declarações não depende do banco de dados do usuário e da chamada de autenticação.
Reivindicar | Tipo | Obrigatório | Descrição |
---|---|---|---|
exp | Unix Timestamp | Sim | Data e hora da expiração do token. O tempo de expiração padrão é de 24 horas. Você pode alterar o tempo de validade para cada projeto Login. |
iss | string | Sim | Serviço que assinou o token: https://login.xsolla.com . |
iat | Unix Timestamp | Sim | Data e hora de entrega do token. |
sub | string (UUID) | Sim | ID do usuário escrito no lado do servidor Xsolla Login. |
groups | array | Sim | A lista de grupos em que o usuário está. Cada grupo é escrito no seguinte formato:
|
xsolla_login_project_id | string (UUID) | Sim | ID de projeto Login. |
username | string | Nome de usuário. | |
publisher_id | integer | ID de um comerciante que possui um projeto Login. | |
email | string | Endereço de e-mail do usuário. | |
payload | string | Informações adicionais que são passadas no parâmetro payload durante a autenticação. | |
promo_email_agreement | boolean | Consentimento para receber uma newsletter. Pode ter um dos seguintes valores:
true por padrão.Para adicionar o recurso ao formulário de cadastro do widget de Login:
| |
connection_information | string | Mostra se o usuário confirmou sua data de nascimento ou não. A confirmação é feita através do serviço okname. |
Autenticação social
Declarações que estão contidas no token após a autenticação por meio de uma rede social. A presença dessas declarações não depende do banco de dados do usuário.
Reivindicar | Tipo | Obrigatório | Descrição |
---|---|---|---|
provider | string | Sim | Nome de uma rede social usada para autenticação. Valores possíveis: amazon , apple , baidu , battlenet , discord , facebook , github , google , kakao , linkedin , mailru , microsoft , msn , naver , ok , paypal , psn , qq , reddit , steam , twitch , twitter , vimeo , vk , wechat , weibo , yahoo , yandex , youtube , xbox . |
id | string | Sim | ID de usuário em uma rede social. |
is_cross_auth | boolean | Mostra que a solicitação de autenticação silenciosa está em andamento. | |
social_access_token | string | Parâmetro access_token de conta de rede social usado para autenticação. Entre em contato com seu Gerente de Sucesso do Cliente ou envie um e-mail a csm@xsolla.com para configurar o recurso | |
picture | string (URL) | Link para a foto de perfil do usuário em uma rede social. | |
birthday | date (RFC 3339) | Data de nascimento do usuário em uma rede social. | |
gender | string | Gênero do usuário em uma rede social. | |
name | string | Apelido de usuário em uma rede social. |
Fluxo do usuário
- Um usuário efetua o login no inicializador.
- O inicializador recebe o token de autorização com as informações do usuário do servidor Xsolla Login.
- O usuário inicia o jogo a partir do inicializador.
- Ao iniciar o jogo, o inicializador passa os seguintes argumentos para o cliente do jogo:
--xsolla-login-token <token>
— o token de autorização obtido do servidor Xsolla Login.--xsolla-locale <locale>
— idioma da interface.
Exemplo:
game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
- O cliente do jogo envia o token de usuário obtido para o servidor do jogo para recuperar os dados do usuário de uma das seguintes maneiras:
Como obtê-lo
- Implemente a recuperação de dados do usuário:
- Configure o processamento de parâmetros para o jogo para autenticar usuários automaticamente.
- Implemente a seleção do idioma da interface com base no idioma obtido no argumento
--xsolla-locale <locale>
no cliente do jogo. - Implemente o rastreamento de novos usuários e a criação de suas contas no servidor do jogo.
Decodificação JWT no servidor do jogo
- Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
- Clique em Configure no painel de um projeto Login.
- Vá para o bloco Security e selecione a seção JWT signature.
- Copie o valor do campo Secret key.
- Escolha a biblioteca e conecte-a no lado do servidor do seu aplicativo.
- Passe o valor copiado na etapa 4 para a entrada da função de decodificação.
Recuperação de dados do usuário usando a Login API
Chame o método Get user details do método da Login API para recuperar dados do usuário.
Cadastro de usuários
Para acompanhar o registro de novos usuários:
- Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
- Clique em Configure no painel de um projeto Login.
- No bloco de configurações superior, clique em Callback URLs.
- No campo Callback URL, insira o endereço URL para o qual o usuário deve ser redirecionado após o cadastro.
- Configure a criação de uma nova conta no jogo. Após o cadastro, o usuário será redirecionado para a URL especificada no campo Callback URL com o parâmetro
is_new=1
. - Para obter informações para o preenchimento da conta, use o método Login API.
Exemplo:
https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
Idioma da interface
Example | Value | Meaning |
---|---|---|
–xsolla-locale en | “en”“ru”“cn”“tw”“fr”“de”“it”“pt”“es”“pl”“cs”“ko”“ar”“bg”“he”“ja”“tr”“th”“vi”“ro” | “English”“Русский”“简体中文”“中国传统的”“Français”“Deutsch”“Italiano”“Português”“Español”“Polski”“Čeština”“한국어”“العربية”“Български”“עברית”“日本語”“Türkçe”“ไทย”“Tiếng Việt”“Română” |
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.