Login / Armazenamento personalizado
  Voltar aos Documentos

Login

Armazenamento personalizado

Se você usa armazenamento personalizado, você tem acesso a:

Fluxo de interação

Você pode usar o widget de login ou o seu aplicativo, que usa chamadas de Login API, como um cliente. O fluxo de interação entre o cliente e o servidor Xsolla Login é o seguinte:

  1. O cliente envia solicitações para o servidor Xsolla Login. O formato de solicitações é descrito em pontos de extremidade JWT e Password.
  2. O servidor Xsolla Login envia solicitações para o seu servidor. Siga as instruções para validar as solicitações.
  3. O servidor Xsolla Login processa uma resposta do seu servidor e retorna o resultado para o cliente.
  4. O cliente processa a resposta.

Observação
Endereços de e-mail do usuário, dados de mídias sociais e atributos do usuário são armazenados no lado da Xsolla. As senhas não são armazenadas no lado da Xsolla.
Você pode enviar informações do usuário de uma das seguintes maneiras:
  • Como qualquer objeto JSON.
Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
  • Como uma matriz de objetos com atributos de usuário. Os objetos devem ter a seguinte estrutura:
ParâmetroTipoDescrição
attr_type
stringDefinição do nível de acesso do usuário aos atributos de serviço:
  • client — Um atributo editável pelo usuário. Os valores para esse tipo de atributo são inseridos por um usuário ou especificados de acordo com as lógicas do jogo no lado do cliente. Por exemplo, o nome e as estatísticas do personagem, o nível de dificuldade do jogo, etc. (padrão)
  • server — Um atributo somente leitura. Os valores para esse tipo de atributo são inseridos e editados no lado do servidor do seu aplicativo. Recomendamos que você os use para configurar estatísticas de personagens do jogo ou parâmetros de usuário que não devem ser alterados regularmente. Por exemplo, chance de obter um bônus, parâmetros chave de personagem do jogo, categorias de usuário, etc.
chave
stringO nome do atributo usado para identificar o atributo do usuário. Deve ser exclusivo para cada usuário.
Comprimento máximo: 256 símbolos. Você pode usar números, letras latinas, hifens e sublinhados.
permissão
cadeia de caracteres ou nullO tipo de acesso aos atributos do usuário afeta a lista de atributos retornados pelos métodos:
Possible values: public, private(padrão).
read_only
stringSe o atributo está protegido contra modificações ou não. Por padrão, false e alterar os valores do atributo é permitido.
valor
stringO valor do atributo do usuário.
Comprimento máximo: 256 símbolos.

Cadastro de usuários

  1. O cliente envia a solicitação Register new user para o servidor Xsolla Login.
  2. O servidor de Xsolla Login envia uma solicitação para o URL de novo usuário. A resposta deve estar no formato descrito neste fluxo de integração. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo partner_data do JWT do usuário.

Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Exemplo de resposta de URL do novo usuário:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email":"j.smith@email.com",
  "password":"123456",
  "username":"j.smith@email.com"
}
curl --request POST \
  --url 'https://your.hostname/your_registration_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

Exemplo de uma resposta com atributos de usuário:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

Exemplo de uma resposta com um objeto JSON:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}
  1. Os dados do usuário serão registrados no banco de dados Xsolla enquanto o email estiver sinalizado como não confirmado. O usuário receberá um e-mail de confirmação de conta.
  2. Se você integrou o Login Widget, o usuário será redirecionado à página com a seguinte mensagem: Confirme sua conta seguindo as instruções enviadas para {email}.
  3. Se o cadastro do usuário não for bem sucedido, você poderá fornecer uma mensagem de erro que será exibida no widget de autenticação. Para fazer isso, na resposta à solicitação de criação do usuário, passe um objeto de error com os seguintes detalhes:
    • No parâmetro code, especifique 011-002.
    • No parâmetro description, forneça o texto da mensagem de erro.
Exemplo de um objeto com uma mensagem de erro:
Copy
Full screen
Small screen
{
  "error": {
    "code": "011-002",
    "description": "<string>"
  }
}

Autenticação via nome de usuário e senha

  1. O cliente envia a solicitação Auth by username and password para o servidor Xsolla Login.
  2. O servidor de Xsolla Login envia uma solicitação para o URL de verificação de usuário. A resposta deve estar no formato descrito neste fluxo de integração. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo partner_data do JWT do usuário.

Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Exemplo de resposta de URL do novo usuário:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email":"j.smith@email.com",
  "password":"123456",
  "username":"j.smith@email.com"
}
curl --request POST \
  --url 'https://your.hostname/your_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

Exemplo de uma resposta com atributos de usuário:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

Exemplo de uma resposta com um objeto JSON:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}
  1. O servidor Xsolla Login gera um JWT de usuário.
  2. O usuário é redirecionado para o parâmetro login_url com uma solicitação de token. O parâmetro token contém o JWT de usuário.
Observação
Um novo usuário será criado se não houver dados de usuário gravados no banco de dados Xsolla.

Autenticação sem senha via número de telefone

  1. O cliente abre um formulário de autenticação para que o usuário possa inserir seu número de telefone.
  2. O usuário insere seu número de telefone.
  3. O cliente envia a solicitação Start auth by phone number para o servidor Xsolla Login.
  4. O cliente mostra um campo para que o usuário possa preencher o código de verificação.
  5. O usuário insere o código de verificação recebido.
  6. O cliente envia a solicitação Complete auth by phone number para o servidor Xsolla Login.
  7. Se for a primeira autorização do usuário, o servidor Xsolla Login envia uma solicitação para o URL de login sem senha com o celular. A resposta deve estar no formato descrito neste fluxo de integração. Em resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta será registrado no campo partner_data no JWT do usuário.

Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Exemplo de resposta de URL do novo usuário:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "login": "+12025550140",
  "type": "phone"
}
curl --request POST \
  --url 'https://your.hostname/your_phone_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"login":"+12025550140","type":"phone"}'

Exemplo de uma resposta com atributos de usuário:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

Exemplo de uma resposta com um objeto JSON:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

Autenticação sem senha via e-mail

  1. O cliente abre um formulário de autenticação para que o usuário possa inserir seu endereço de e-mail.
  2. O usuário insere seu endereço de e-mail.
  3. O cliente envia a solicitação Start auth by email para o servidor Xsolla Login.
  4. O cliente mostra um campo para que o usuário possa preencher o código de verificação.
  5. O usuário insere o código de verificação recebido.
  6. O cliente envia a solicitação Complete auth by email para o servidor Xsolla Login.
  7. Se for a primeira autorização do usuário, o servidor Xsolla Login envia uma solicitação para o URL de autenticação sem senha via e-mail. A resposta deve estar no formato descrito neste fluxo de integração. Em resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta será registrado no campo partner_data no JWT do usuário.

Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Exemplo de resposta de URL do novo usuário:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_email_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email": "user@mail.com",
  "type": "email"
}
curl --request POST \
  --url 'https://your.hostname/your_email_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email": "user@mail.com","type": "email"}'

Exemplo de uma resposta com atributos de usuário:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

Exemplo de uma resposta com um objeto JSON:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

Autenticação via redes sociais

Para obter dados do usuário ao autenticar via redes sociais, especifique o Social Login URL nas configurações do seu projeto Login na Conta de Distribuidor (seção User database > Storage > Custom storage). Uma solicitação com dados recebidos da rede social é enviada para esse URL.

Fluxo de autenticação:

  1. O cliente envia a solicitação Auth via social network para o servidor Xsolla Login.
  2. O usuário faz login em uma rede social.
  3. O servidor Xsolla Login processa os dados do usuário recebidos da rede social e envia uma solicitação para o URL de login social. A resposta deve estar no formato descrito no cenário. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo partner_data do JWT do usuário.

Observação
Para habilitar o envio de qualquer objeto JSON em resposta a uma solicitação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
A solicitação contém dados no token temporário no cabeçalho Authorization: Bearer <JWT>. O usuário JWT passado na solicitação contém os seguintes dados:
ReivindicarTipoDescrição
expCarimbo de data/hora UnixA data e a hora do vencimento do JWT. A vida útil do JWT é de 7 minutos. Obrigatório.
iatCarimbo de data/hora UnixA data e a hora em que o JWT é emitido. Obrigatório.
issstringO serviço que assinou o JWT: https://login.xsolla.com. Obrigatório.
request_typestringConstante: gateway_request. Obrigatório.
xsolla_login_project_idcadeia de caracteres (UUID)Seu ID de projeto de Login na Conta de Distribuidor. Obrigatório.
emailstringEndereço de e-mail do usuário.
subcadeia de caracteres (UUID)ID do usuário escrito no lado do servidor Xsolla Login. Obrigatório.
usernamestringNome de usuário.
providerstringNome de uma rede social usada para autenticação. Obrigatório.
idstringID de usuário em uma rede social. Obrigatório.
social_access_tokenstringToken de acesso da rede social pela qual o usuário fez a autenticação. Para ativar a transmissão dessa reivindicação, entre em contato com seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
partner_datastringDados de qualquer tipo são retornados pelo seu servidor no corpo de resposta durante a autenticação. Para habilitar a transmissão dessa reivindicação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Exemplo de uma carga útil de token:
Copy
Full screen
Small screen
{
  "exp": 1573635020,
  "iat": 1573634600,
  "iss": "https://login.xsolla.com",
  "request_type": "gateway_request",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
  "sub": "00000000-0000-0000-0000-000000000000",
  "email": "example@test.com",
  "username": "Smith707",
  "provider": "google",
  "id": "123",
}

Exemplo de resposta de URL do novo usuário:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_social_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{}
curl --request POST \
  --url 'https://your.hostname/your_social_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json'

Exemplo de uma resposta com atributos de usuário:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

Exemplo de uma resposta com um objeto JSON:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

Redefinição de senha do usuário

  1. O cliente envia a solicitação Reset password para o Xsolla Login Server.
  2. O servidor Xsolla Login envia ao usuário um e-mail de confirmação de redefinição de senha.
  3. Após confirmar a redefinição de senha no e-mail, o usuário é redirecionado para a página onde pode inserir uma nova senha.
  4. O usuário insere uma nova senha.
  5. O servidor Xsolla Login envia uma solicitação para o Password reset URL.

Exemplo de resposta de URL do novo usuário:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_reset_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "username": "john@gmail.com",
  "fields": {
    "password": "NewPa$$word1"
  }
}
curl --request POST \
  --url 'https://your.hostname/your_reset_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
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.

Continuar lendo

Última atualização: 18 de Novembro 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!