Xsolla-logo

Descripción general

Esta sección describe las llamadas API para trabajar con Login. Establezca su proyecto de Login en Cuenta del editor antes de enviar solicitudes.

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

Descargar definición de API

Puede descargar la definición de API en dos formatos:

Glosario

Puede acceder a los siguientes tipos de proyectos de Login en Cuenta del editor:

  • Proyecto de Login estándar
  • Proyecto de Login concurrente

Para obtener más información al respecto, consulte el artículo Cuenta multiplataforma.

Límites de frecuencia

Son las restricciones aplicadas por la API de Xsolla a la frecuencia de acceso por parte de un usuario en un plazo definido.

Proyecto de Login estándar

Es un proyecto de Login que se utiliza para almacenar las cuentas principales.

Proyecto de Login concurrente

Es un proyecto de Login que se utiliza para almacenar las cuentas de plataforma.

Cuenta principal

Es un tipo de cuenta que se crea en un proyecto de Login estándar y se vincula a cuentas de plataforma. La cuenta principal se utiliza para identificar al jugador en las diferentes plataformas.

Cuenta de plataforma

Es un tipo de cuenta que se crea en un proyecto de Login concurrente y se conecta a una plataforma de publicación definida. La cuenta de plataforma no puede vincularse a otra cuenta de plataforma. Tampoco puede desvincularse de una cuenta principal.

Plataforma de publicación

Es una plataforma de juegos que se utiliza para la distribución de juegos (p.  ej., Steam, PlayStation, Xbox, etc.).

Autenticación

Login API admite los siguientes tipos de token:

Authentication schemes

Puede determinar si una llamada API es del lado del cliente o del lado del servidor por el esquema de autenticación:

  • 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.

Obtener un token de usuario

Para obtener el token, envíe una de las siguientes solicitudes:

Tras la autenticación mediante JWT, el usuario es redirigido a la URL de devolución de llamada con un token en un parámetro de consulta: <Callback URL>?token=<User token (JWT)>.

Tras la aunticación basada en el protocolo OAuth 2.0, envíe la solicitud Generate JWT al servidor de Xsolla Login para cambiar el parámetro code recibido por un token de usuario (access_token).

Obtener un token de servidor

Para obtener un token de servidor:

  1. Establezca el servidor cliente de OAuth 2.0.
  2. Genere un JWT de servidor.

Establecer el cliente de OAuth 2.0

  1. Abra su proyecto en Cuenta del editor y vaya a la sección de Login.
  2. Haga clic en Configure en el panel de un proyecto de Login.
  3. Vaya al bloque Security y seleccione la sección OAuth 2.0.
  4. Haga clic en Add OAuth 2.0 Client.
  5. Marque la casilla Server (server-to-server connection).
  6. Especifique Token lifetime.
  7. Haga clic en Connect.
  8. Copie y guarde el ID de cliente y la clave secreta.

Generar un JWT de servidor

En el back-end de su aplicación, implemente un método para obtener el JWT de servidor utilizando la llamada Generate JWT API. La solicitud debe contener los siguientes parámetros:

  • grant_type es el tipo de obtención del JWT, transmita el valor client_credentials.
  • client_secret es la clave secreta que se recibe cuando establece el cliente de OAuth 2.0 del servidor.
  • client_id es el ID de cliente recibido al establecer el cliente OAuth 2.0 del servidor.

Límites de frecuencia

Para evitar sobrecargas del sistema de Xsolla y protegerlo de ráfagas repentinas de tráfico entrante, Xsolla limita el número de solicitudes recibidas por la API de Xsolla durante un periodo especificado. Si se excede el límite, la API de Xsolla devuelve una respuesta HTTP con el código de estado 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

Los límites de frecuencia para los métodos del lado del cliente no cambian y son necesarios para impedir ataques de fuerza bruta. La frecuencia máxima de solicitudes para los métodos del lado del servidor es mayor que para los métodos del lado del cliente. Puede consultar las recomendaciones sobre cómo gestionar los límites de frecuencia en la documentación.

Observación En determinados casos, pueden ajustarse los límites de frecuencia previa solicitud. Para solicitar el ajuste de los límites de frecuencia, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.

Estructura del JWT

Cada token tiene un formato de JWT y contiene una información precisa en una carga útil.

Usuario de JWT

El JWT de usuario es un token recibido como resultado de una autenticación o registro. La carga útil de un token contiene información sobre el usuario y la llamada de autenticación.

Obtener un token de usuario mediante el protocolo OAuth 2.0 requiere un cliente de OAuth 2.0. El token de usuario se transmite en el encabezado Authorization: Bearer <JWT>.

Principales notificaciones

Un token contendrá las notificaciones principales tras la autenticación o la confirmación de la dirección de correo electrónico. La presencia de estas notificaciones no depende de la base de datos de usuarios ni de la llamada de autenticación.

 
Notificación Tipo Obligatoria Descripción
exp Marca de tiempo de Unix Fecha y hora de expiración del token. El tiempo de expiración por defecto es de 24 horas. Puede cambiar el tiempo de expiración para cada proyecto de Login.
iss string Servicio que firmó el token: https://login.xsolla.com.
iat Marca de tiempo de Unix Fecha y hora de entrega del token.
sub string (cadena) (UUID) ID de usuario escrito en el lado del servidor de Xsolla Login.
groups matriz

La lista de grupos a los que pertenece el usuario. Cada grupo se escribe con el siguiente formato:

  • id - ID del grupo
  • name - nombre del grupo
  • is_default - muestra si se trata de un grupo por defecto o no (valores true o false ).

Solo puede haber un grupo por defecto. Este grupo incluye inicialmente a todos los usuarios antes de que se distribuyan en diferentes grupos.

xsolla_login_project_id string (cadena) (UUID) ID del proyecto de Login.
type string

Opciones de autenticación:

  • xsolla_login - inicio de sesión mediante nombre de usuario/correo electrónico y contraseña.
  • social - inicio de sesión mediante redes sociales
  • email - inicio de sesión sin contraseña mediante código de un solo uso recibido por correo electrónico.
  • phone - inicio de sesión sin contraseña mediante un código de un solo uso recibido por SMS.
  • firebase - inicio de sesión mediante nombre de usuario/correo electrónico y contraseña cuando el almacenamiento de datos del usuario es Firebase.
  • playfab - Inicio de sesión mediante nombre de usuario/correo electrónico y contraseña cuando el almacenamiento de datos del usuario es PlayFab.
  • proxy - inicio de sesión a través de nombre de usuario / correo electrónico y contraseña cuando el almacenamiento de datos de usuario es personalizado.
  • device - inicio de sesión con ID de dispositivo.
  • server_custom_id - inicio de sesión con ID personalizado.

Solo puede haber un grupo por defecto. Este grupo incluye inicialmente a todos los usuarios antes de que se distribuyan en diferentes grupos.

avatar string URL del avatar del usuario.
username string Nombre de usuario.
publisher_id integer ID de un vendedor propietario de un proyecto de Login.
email string Dirección de correo electrónico del usuario.
payload string Información adicional que se transmite en el parámetro de carga útil durante la autenticación.
promo_email_agreement boolean

Puede tener uno de los siguientes valores:

  • true si el usuario acepta recibir un boletín.
  • false en caso contrario.
Tiene el valor true por defecto.

Para añadir la función al formulario de registro del widget de Login :

  • Contacte con su gestor de cuenta si utiliza el widget 2.0.
  • Agregue el parámetro fields con el valor promo_email_agreement al código de inicialización si utiliza la versión anterior del widget.

connection_information string Muestra si el usuario ha confirmado o no su fecha de nacimiento. La confirmación se realiza a través del servicio okname.

Almacenamiento PlayFab

Notificaciones contenidas en el token tras la autenticación si utiliza el almacenamiento de PlayFab.

Notificación Tipo Obligatoria Descripción
external_account_id string ID de usuario de PlayFab.
session_ticket string

Un parámetro SessionTicket recibido durante una solicitud de autenticación o solicitudes a la PlayFab API.

Un token contiene la notificación si autentica a los usuarios mediante el protocolo OAuth 2.0 y transmite el valor playfab al parámetro scope.

entity_token string Un parámetro EntityToken.EntityToken.
entity_type string Un parámetro EntityToken.Entity.Type. Solo puede tener el valor title_player_account.
entity_id string Un parámetro EntityToken.Entity.Id.

Almacenamiento personalizado

Notificaciones contenidas en el token tras la autenticación si utiliza el almacenamiento personalizado.

Notificación Tipo Obligatoria Descripción
provider string Nombre de la red social utilizada para la autenticación. Si el usuario se autentica mediante nombre de usuario y contraseña, la notificación tiene el valor xsolla.
external_account_id string ID de usuario en el lado de su 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.

Autenticación mediante redes sociales

Notificaciones contenidas en el token tras la autenticación a través de una red social. La presencia de estas notificaciones no depende de la base de datos de usuarios.

Notificación Tipo Obligatoria Descripción
provider string Nombre de la red social utilizada para la autenticación.
id string ID de usuario en una red social.
is_cross_auth boolean Muestra que la solicitud de autenticación silenciosa está en curso.
social_access_token string Parámetro access_token de la cuenta de red social utilizado para la autenticación. Póngase en contacto con su gestor de cuenta para establecer esta función.
picture string (URL) Enlace a la foto de perfil del usuario en una red social.
birthday fecha (RFC3339) Fecha de nacimiento del usuario en una red social.
gender string Sexo/género de los usuarios en una red social.
name string Apodo del usuario en una red social.

Autenticación mediante el protocolo OAuth 2.0

Notificaciones contenidas en el token tras la autenticación OAuth 2.0.

Notificación Tipo Obligatoria Descripción
jti string ID de token único.

Autenticación mediante un número de teléfono

Notificación que contiene el token tras la autenticación mediante un número de teléfono.

Notificación Tipo Obligatoria Descripción
phone_number string Número de teléfono del usuario utilizado para la autenticación. El formato del número de teléfono se basa en el código de país, el distintivo de zona y el número de línea sin separadores.

JWT del servidor

El token del servidor se transmite en el encabezado X-SERVER-AUTHORIZATION.

La carga útil del token contiene información sobre los recursos que posee el cliente de OAuth 2.0. El token tiene acceso a llamadas con autenticación basada en servidor para estos recursos.

Notificación Tipo Obligatoria Descripción
xsolla_login_project_id string (cadena) (UUID) ID de un proyecto de Login que posee el cliente de OAuth 2.0.
resources matriz

Lista de recursos propiedad de un cliente de OAuth 2.0. Posibles tipos de recursos:

  • publisher_id - recursos de un vendedor propietario del proyecto de Login
  • publisher_project_id - recursos de un proyecto en Cuenta del editor.

Cada grupo se escribe en el siguiente formato:

  • name - tipo de recurso
  • value - ID del recurso

jti string ID de token único.

Validación del JWT

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

Aviso

No revele su clave secreta a nadie. Si se ha visto comprometida, cámbiela.

Errores

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

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

Errores

En caso de respuestas de error, el servidor Xsolla Login devuelve un objeto JSON con los siguientes campos:

Campo Tipo Descripción
código string Código de error del servidor de Xsolla Login.
descripción string Descripción del error. El texto está siempre en inglés. No utilice este texto en caso de error, ya que el valor puede cambiar en el 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. |