Xsolla-logo

Visão geral

Esta seção descreve as chamadas de API para trabalhar com Login. Configure seu projeto Login na Conta de Distribuidor antes de enviar solicitações.

IP addresses

The full list of IP addresses that login.xsolla.com may use:

  • 34.94.0.85
  • 34.94.14.95
  • 34.94.25.33
  • 34.94.115.185
  • 34.94.154.26
  • 34.94.173.132
  • 34.102.48.30
  • 35.235.99.248
  • 35.236.32.131
  • 35.236.35.100
  • 35.236.117.164

Baixar definição de API

Você pode baixar a definição de API em dois formatos:

Glossário

Você tem acesso aos seguintes tipos de projeto Login na Conta de Distribuidor:

  • Projeto Login padrão
  • Projeto Shadow Login

Para obter mais informações sobre ele, consulte o recurso Conta multiplataforma.

Limites de taxa

São as restrições aplicadas pela API Xsolla sobre a frequência de acesso por um usuário dentro de um período de tempo definido.

Projeto Login padrão

É um projeto Login usado para armazenar contas principais.

Projeto Shadow Login

É um projeto Login usado para armazenar contas de plataforma.

Conta principal

É um tipo de conta criado em um projeto Login padrão e vinculado a contas de plataforma. A conta principal é usada para identificar o jogador em diferentes plataformas.

Conta da plataforma

É um tipo de conta criado em um projeto de Login sombra e conectado a uma plataforma de distribuição definida. A conta da plataforma não pode ser vinculada a outra conta da plataforma. Além disso, não é possível desvincular as contas de uma conta principal.

Plataforma de publicação

É uma plataforma de jogos que é usada para a distribuição de jogos (por exemplo, Steam, PlayStation, Xbox, etc.).

Autenticação

A Login API oferece suporte aos seguintes tipos de token:

Authentication schemes

Você pode determinar se uma chamada de API ocorre no lado do cliente ou do servidor pelo esquema de autenticação:

  • Client-side — are called without authentication or with the Authorization header: Bearer <user_JWT> header, where <user_JWT> — is the user token.
  • Server-side API calls for implementing the user flow — are called with the header: X-SERVER-AUTHORIZATION: <server_JWT>, where <server_JWT> — is the server token.

Obtenção de um token de usuário

Para obter o token, envie uma das seguintes solicitações:

Após a autenticação JWT, o usuário é redirecionado para o URL de retorno de chamada com um token em um parâmetro de consulta: <Callback URL>?token=<User token (JWT)>.

Após a autenticação baseada no protocolo OAuth 2.0, envie a solicitação Generate JWT ao servidor do Xsolla Login para trocar o parâmetro code recebido por um token de usuário (access_token).

Obtenção de um token de servidor

Para obter um token de servidor:

  1. Configure o cliente OAuth 2.0 do servidor.
  2. Gere o JWT do servidor.

Configure o cliente OAuth 2.0 do servidor

  1. Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
  2. Clique em Configure no painel de um projeto Login.
  3. Vá para o bloco Security e selecione a seção OAuth 2.0.
  4. Clique em Adicionar cliente OAuth 2.0.
  5. Marque a caixa Server (server-to-server connection).
  6. Especifique o Tempo de vida do token.
  7. Clique em Connect.
  8. Copie e salve o ID do cliente e a chave secreta.

Geração do JWT do servidor

No back-end do seu aplicativo, implemente um método para obter o JWT do servidor usando a chamada Generate JWT API. A solicitação deve conter os seguintes parâmetros:

  • grant_type é o tipo de obtenção de JWT; passa o valor client_credentials.
  • client_secret é a chave secreta que é recebida quando você configura o cliente OAuth 2.0 do servidor.
  • client_id é o ID do cliente recebido quando você configura o cliente OAuth 2.0 do servidor.

Limites de taxa

Para evitar sobrecarregar o sistema Xsolla e proteger contra picos repentinos no tráfego de entrada, a Xsolla limita o número de solicitações recebidas pela API Xsolla dentro de um período de tempo especificado. Se o limite for excedido, a API Xsolla retornará uma resposta HTTP com o código de status 429.

Rate limits vary by method, IP-address, authentication scheme, and other factors.

Rate limits for server-side methods are applied to methods with server-side authentication — methods that are called with the X-SERVER-AUTHORIZATION: <server_JWT> header, where <server_JWT> is the server token.

Rate limits for client-side methods are applied to methods without authentication or with client-side authentication — methods that are called with the Authorization: Bearer <user_JWT> header, where <user_JWT> is the user token.

Example of a method with server-side authentication: Example of a 
method with server-side 
authentication Example of a method with client-side authentication: Example of a method with server-side 
authentication

Os limites de taxa para métodos do lado do cliente não mudam e são necessários para evitar ataques de força bruta. A taxa máxima de solicitação para métodos do lado do servidor é maior do que para métodos do lado do cliente. Você pode consultar as recomendações sobre como gerenciar limites de taxa na documentação.

Observação Em certos casos, é possível ajustar os limites de taxa por solicitação. Para solicitar o ajuste dos limites tarifários, entre em contato com o Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.

Estrutura JWT

Cada token tem um formato JWT e contém uma informação definida em uma carga.

JWT do usuário

O JWT do usuário é um token recebido como resultado da autenticação ou cadastro. Uma carga de token contém informações sobre o usuário e a chamada de autenticação.

Para obter um token de usuário por meio do protocolo OAuth 2.0, você precisa de um cliente OAuth 2.0. O token de usuário é passado no cabeçalho Authorization: Bearer <JWT>.

Principais reivindicações

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 Carimbo de data/hora Unix 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 expiração para cada projeto Login.
iss cadeia de caracteres Sim Serviço que assinou o token: https://login.xsolla.com.
iat Carimbo de data/hora Unix Sim Data e hora de entrega do token.
sub cadeia de caracteres (UUID) Sim ID do usuário escrito no lado do servidor Xsolla Login.
groups matriz Sim

A lista de grupos em que o usuário está. Cada grupo é escrito no seguinte formato:

  • id — ID do grupo
  • name — nome do grupo
  • is_default — exibe se o grupo é padrão ou não (true ou valores false).

Só pode haver um grupo padrão. Esse grupo inicialmente inclui todos os usuários antes que eles sejam distribuídos em grupos diferentes.

xsolla_login_project_id cadeia de caracteres (UUID) Sim ID do projeto Login.
type cadeia de caracteres

Opção de autenticação:

  • xsolla_login — login via nome de usuário/e-mail e senha.
  • social — login social.
  • email — login sem senha por meio de um código único recebido por e-mail.
  • phone — login sem senha por meio de um código único recebido por SMS.
  • firebase — login via nome de usuário/e-mail e senha quando o sistema de armazenamento de dados do usuário for o Firebase.
  • playfab — login via nome de usuário/e-mail e senha quando o sistema de armazenamento de dados do usuário for o PlayFab.
  • proxy — login via nome de usuário/e-mail e senha quando o armazenamento de dados do usuário for personalizado.
  • device — login com o ID do dispositivo.
  • server_custom_id — login com ID personalizado.

Só pode haver um grupo padrão. Esse grupo inicialmente inclui todos os usuários antes que eles sejam distribuídos em grupos diferentes.

avatar cadeia de caracteres URL do avatar do usuário.
username cadeia de caracteres Nome de usuário.
publisher_id número inteiro ID de um comerciante que possui um projeto de login.
email cadeia de caracteres Endereço de e-mail do usuário.
payload cadeia de caracteres Informações adicionais que são passadas no parâmetro de carga durante a autenticação.
promo_email_agreement valor booleano

Pode ter um dos seguintes valores:

  • true se o usuário concordar em receber uma newsletter.
  • false caso contrário.
Tem o valor true por padrão.

Para adicionar o recurso ao formulário de registro do Login widget:

  • Contate seu Gerente da Conta se você utiliza o Widget 2.0.
  • Adicione o parâmetro fields com o valor promo_email_agreement ao código de inicialização se você utiliza a versão anterior do widget.

connection_information cadeia de caracteres Mostra se o usuário confirmou a data de nascimento ou não. A confirmação é feita através do serviço okname.

Armazenamento PlayFab

Declarações contidas no token após a autenticação se você usar o armazenamento PlayFab.

Reivindicar Tipo Obrigatório Descrição
external_account_id cadeia de caracteres Sim ID do usuário PlayFab.
session_ticket cadeia de caracteres Sim

Um parâmetro SessionTicket recebido durante uma solicitação de autenticação ou solicitações para a PlayFab API.

Um token conterá a declaração se você autenticar usuários por meio do protocolo OAuth 2.0 e passar o valor playfab para o parâmetro scope.

entity_token cadeia de caracteres Sim Um parâmetro EntityToken.EntityToken.
entity_type cadeia de caracteres Sim Um parâmetro EntityToken.Entity.Type. Só aceita o valor title_player_account.
entity_id cadeia de caracteres Sim Um parâmetro EntityToken.Entity.Id.

Armazenamento personalizado

Declarações contidas no token após a autenticação se você usar armazenamento personalizado.

Reivindicar Tipo Obrigatório Descrição
provider cadeia de caracteres Sim Nome de uma rede social usada para autenticação. Se o usuário autenticar via nome de usuário e senha, a declaração terá o valor xsolla.
external_account_id cadeia de caracteres ID do usuário no lado do servidor.
partner_data Data of any type returned by your server in the response body during authentication. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com
social_access_token Access token of the social network through which the user was authenticated. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com.

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 cadeia de caracteres Sim Nome de uma rede social usada para autenticação.
id cadeia de caracteres Sim ID de usuário em uma rede social.
is_cross_auth valor booleano Mostra que a solicitação de autenticação silenciosa está em andamento.
social_access_token cadeia de caracteres Parâmetro access_token de conta de rede social usado para autenticação. Entre em contato com seu Gerente de Conta para configurar o recurso.
picture cadeia de caracteres (URL) Link para a foto de perfil do usuário em uma rede social.
birthday data (RFC3339) Data de nascimento do usuário em uma rede social.
gender cadeia de caracteres Gênero do usuário em uma rede social.
name cadeia de caracteres Apelido do usuário em uma rede social.

Autenticação através do protocolo OAuth 2.0

Declarações contidas no token após a autenticação do OAuth 2.0.

Reivindicar Tipo Obrigatório Descrição
jti cadeia de caracteres Sim ID de token exclusivo.

Autenticação através de um número de telefone

Reivindicação que está contida no token após a autenticação por meio de um número de telefone.

Reivindicar Tipo Obrigatório Descrição
phone_number cadeia de caracteres Sim Número de telefone do usuário usado para autenticação. O formato de número de telefone com base no código do país, código de área e número de linha sem divisórias.

Servidor JWT

O token do servidor é passado no cabeçalho X-SERVER-AUTHORIZATION.

A carga do token contém informações sobre recursos pertencentes ao cliente OAuth 2.0. O token tem acesso a chamadas com autenticação baseada em servidor para esses recursos.

Reivindicar Tipo Obrigatório Descrição
xsolla_login_project_id cadeia de caracteres (UUID) Sim ID de um projeto Login que possui o cliente OAuth 2.0.
resources matriz Sim

Lista de recursos pertencentes a um cliente OAuth 2.0. Tipos possíveis de recursos:

  • publisher_id — recursos de um comerciante proprietário do projeto Login
  • publisher_project_id — ecursos de um projeto na Conta de Distribuidor.

Cada grupo é escrito no seguinte formato:

  • name — tipo de recurso
  • value — ID do recurso

jti cadeia de caracteres Sim ID de token exclusivo.

Validação JWT

To validate the JWT, use the following Login API calls:

Aviso

Não revele sua chave secreta a ninguém. Se ela foi comprometida, atualize-a.

Erros

| Error Code | Description | Recommendation | |---------------------------|---------------------------------------------------

---------------------------------------------------------------------------|:---

Erros

Em caso de respostas de erro, o servidor do Xsolla Login retorna um objeto JSON com os seguintes campos:

Campo Tipo Descrição
código cadeia de caracteres Código de erro do servidor Xsolla Login.
descrição cadeia de caracteres Descrição do erro. O texto está sempre em inglês. Não use este texto em caso de erro, pois o valor pode mudar no futuro.
{
  "error": {
    "code": "000-000",
    "description": "description"
  }
}

| Error Code | Description | Recommendation | |---------------------------|---------------------------------------------------


---------------------------------------------------------------------------|:---


---------------------------------------------------------------------------:| | 002-016 | Invalid JWT. | The user should try to log in again. | | 002-027 | Parameter is invalid. | Make sure all request parameters are correct. | | 002-028 | Parameter was not passed. | Make sure all required parameters are provided. | | 002-040 | This user is banned. | The user should contact the game support team. | | 002-043 | This phone number cannot receive SMS. Use a different number. | The user should try another phone number that can receive SMS. | | 002-050 | User MFA settings have not changed. | The error occurs when trying to enable two-factor authentication if it's already enabled, or disable it if it's already disabled. | | 002-056 | Invalid phone number. Verify the number or try another one. | The user should verify the phone number or enter a different one. | | 002-057 | Too many login attempts. | The user should try again later. If you believe this error should not occur, please contact the integrator team in any messenger. | | 002-058 | You exceeded login attempts limit. To unblock your account, follow the link in the email that we sent or reset your password. | The user should use the link in the email to unblock their account or reset the password. | | 002-060 | User younger than required age. | Inform the user of the age restrictions. | | 003-001 | Incorrect email address/username or password. | The user should verify the entered information and try again. | | 003-002 | User is not signed up. | The user should sign up in the game to continue. | | 003-003 | User with this username already exists. Try another username. | The user should try a different username. | | 003-004 | User with this email address already exists. Try another email address. | The user should use a different email address. | | 003-005 | Email address does not exist. Try another email address. | The user should try a different email address. | | 003-007 | Account not activated. Please confirm email address. | The user should confirm their email address to activate the account. If they haven't received a confirmation email, they should check the spam folder. | | 003-008 | Changing email address not allowed. | Changing the email address is not allowed. | | 003-009 | User search request wrong. | The search failed for technical reasons, please try again later. | | 003-010 | Changing birth date is unavailable. | Changing the birth date is not allowed. | | 003-011 | Email address not confirmed. Try another email address or confirm this one. | The user should confirm the email address or use another one that has not been previously used during registration. | | 003-012 | User with specified phone number already exists. | The user should confirm the phone number or use another one that has not been previously used during registration. | | 003-019 | Login with this project ID not found. | Check the existence of the authentication variant with the passed ID. | | 003-020 | Call unavailable for this Login project. | Check the authorization option settings in your Publisher Account. | | 003-021 | Logging in via username/password not allowed. | The user should contact game support. | | 003-022 | Incorrect project configuration. | Verify the authorization option settings in your Publisher Account. | | 003-023 | Signing up via username/password not allowed. | Registration is not allowed for this authorization option. The user should contact game support. | | 003-030 | Link has expired. Please perform password recovery again. | The password reset link has expired or is incorrect. The user should attempt to reset the password again. | | 003-049 | Too many attempts to use confirmation code. Try again later. | The user should try again later. | | 007-001 | Login via phone is currently unavailable in your country. Please try a different login method. | The user should use an alternative login method. | | 008-001 | Passwordless login URL not configured. | Add the correct login URL in the authorization option settings in your Publisher Account (section User database > Storage > Custom storage). | | 008-002 | User verification URL not configured. | Add the correct user verification URL in the authorization option settings in your Publisher Account (section User database > Storage > Custom storage). | | 008-003 | New user URL not configured. | Add the correct URL in the authorization option settings in your Publisher Account (section User database > Storage > Custom storage). | | 008-004 | Password reset URL not configured. | Add the correct password reset URL in the authorization option settings in your Publisher Account (section User database > Storage > Custom storage). | | 008-005 | PlayFab Title ID invalid. | Ensure the correct Title ID is specified in the authorization option settings in your Publisher Account (section User database > Storage). | | 008-006 | PlayFab API key invalid. | Ensure the PlayFab API key is valid. | | 008-008 | Invalid response from your API. It must contain user ID as "accountID" response body parameter. | Ensure the server returns the accountID parameter in the response body. | | 008-009 | Invalid URL in Custom storage settings. | Verify the URLs specified in the Custom storage settings in the authorization option in your Publisher Account (section User database > Storage > Custom storage). | | 008-011 | Set new password page URL not configured. | Ensure that the callback URL for password reset is specified in the authorization option settings in your Publisher Account (section Password settings). | | 008-013 | Consent page URL not configured or invalid. | Ensure that a link to the user agreement is specified in the authorization option settings in your Publisher Account (section Legal Terms

Policies and Agreements). | | 008-014 | Okta integration not completed. | Contact the integration team through any messenger. | | 008-015 | SAML integration not completed. | Contact the integration team through any messenger. | | 008-016 | Firebase API key not set. | Add the API key to the settings in your Publisher Account (section Legal Terms > Policies and Agreements). | | 010-004 | Service temporarily unavailable. Try again later. | The user should try again later. | | 010-005 | Allowable number of requests exceeded. Try again later. | The user should try again later. | | 010-006 | If this social profile is unlinked, no authentication methods will be available. | The user should add another authentication method before unlinking the social network. | | 010-007 | Incorrect CAPTCHA input. Try again. | The user should complete the CAPTCHA again. | | 010-010 | Invalid confirmation code. | The user should verify the code and try again. | | 010-014 | Your code is expired. Return to the login page and log in again. | The user should log in again from the login page. | | 010-015 | Something went wrong during authentication with this social network. Try again later. | The user should try again later. | | 010-016 | This social account is already linked to another user. | The user should use a different social account. If they believe this is an error, they should contact the integration team through any messenger. | | 010-017 | Client authentication failed. Some request parameters are missing in request or have invalid values. | Verify the correctness of the request parameters being sent. | | 010-019 | Client authentication failed. Client with this client_id value does not exist. | Ensure that a client with the provided client_id exists. | | 010-020 | Client authentication failed. Parameter scope is invalid or malformed. | Ensure that the provided scope parameter is correct. Refer to the instructions for detailed setup information. | | 010-021 | Client authentication failed. Parameter response_type is invalid or malformed. You should pass value of code parameter to response_type. | Ensure that the value of the response_type parameter is set to "code". | | 010-022 | Client authentication failed. Parameter state is missing or its value has less than 8 characters. | Ensure that the state parameter is present and consists of at least 8 characters. | | 010-023 | Client authentication failed. Authorization code, authorization grant types, or refresh token are invalid or expired. Also this error is returned when the redirect_uri given in authorization grant type does not match the URI provided in access token request. | Ensure that the authorization code is valid and not expired, and that the redirect_uri parameter contains an authorized URL. Refer to the instructions for detailed setup information. | | 010-026 | The resource owner or authorization server denied the request. | Ensure that you have sufficient permissions to access the resource. | | 010-030 | Cross social network is not enabled for this Login. | Ensure that cross-authentication is enabled for the authorization option. Refer to the instructions for detailed setup information. | | 010-031 | Social provider already exists. | The error occurs when attempting to connect a social network that is already enabled. | | 010-032 | Social network is not enabled for this Login. You can enable it in your Xsolla Publisher Account > Login Project > Social connections. | Ensure that the social network is enabled and configured in the authorization option settings in your Publisher Account (section Authorization via Social Networks). | | 010-033 | This call is temporary unavailable. | The user should try again later. | | 010-035 | Dependency service is unavailable | The user should try again later. | | 010-045 | Account with this social provider email address already exists. | The user should use a different social account for registration. | | 030-024 | Password recovery is not allowed. | The user should contact the game support team. | | 040-001 | Email address must be 254 characters or shorter. | The user should enter an email address containing no more than 254 characters. | | 040-002 | Username of the email address is invalid. Try another email address. | The user should enter a valid email address. | | 040-003 | Local part of the email address is too long. | The user should enter a different email address. | | 040-004 | Email address domain is invalid. Try another email address. | The user should contact Xsolla support. | | 040-005 | Email address should contain one @ character only. (E.g., username@example.com) | The user should enter an email with only one @ character. | | 040-006, 040-007, 040-008 | Email address domain is invalid. Try another email address. | The user should contact Xsolla support. | | 040-009 | Email address domain doesn’t exist. Try another email address. | The user should enter an email with an existing domain. | | 040-010 | Email address domain is not allowed. Try another email address. | The user should contact Xsolla support. | | 010-018 | Email address is invalid. Try another email address. | The user should enter a different email address. | | 300-003 | Allowable number of requests exceeded. Try again later. | The user should try again later. | | 300-005 | Failed to resend code. Try again later. | The user should try again later. | | 300-006 | Incorrect confirmation code. Check the code that you received and try again. | The user should verify and re- enter the confirmation code. | | 300-008 | You've exceeded the maximum number of attempts. Use the new code sent to your email or phone. | The user should use the new code sent to their email or phone. | | 003-007 | User account not confirmed. | The user should confirm their email address to activate the account. If they haven't received a confirmation email, they should check the spam folder. | | 003-025 | Error occurred while getting OAuth 2.0 access token. | The user should try a different authentication method. | | 003-040 | Unauthorized user. | The user should log in again. | | 003-033 | Mismatch project type. | Ensure that shadow authentication is used for the authorization option. | | 2002-0001 | Duplicated attributes. | Make sure that the attribute being created has not been previously added to the user. |