Almacenamiento personalizado de datos de usuarios

Si usa un almacenamiento de datos de usuario personalizado, Xsolla Login interviene como intermediario y todos los datos de identificación del usuario se almacenan en su lado. Xsolla Login transmite los datos de autenticación en el token que se incluye en el encabezado de los webhooks y en sus cuerpos.

Nota
Las direcciones de correo electrónico de los usuarios, los datos de las redes sociales y los atributos de los usuarios se almacenan en el lado de Xsolla. Las contraseñas no se almacenan en el lado de Xsolla.
Si utiliza el almacenamiento personalizado, tendrá acceso a:
Nota
Si está probando la integración localmente, las solicitudes POST realizadas desde Xsolla no llegan a las URL como http://localhost:3000/my-webhook-endpoint. Ngrok le permite crear un túnel de acceso externo, permitiéndole recibir solicitudes de Xsolla localmente. Puede obtener más información en la documentación de ngrok. Si está probando la integración localmente, las solicitudes POST realizadas desde Xsolla no llegan a las URL como http://localhost:3000/my-webhook-endpoint. Ngrok le permite crear un túnel de acceso externo, permitiéndole recibir solicitudes de Xsolla localmente. Puede obtener más información en la documentación de ngrok.

Flujo de interacción

Puede utilizar el widget de inicio de sesión o su aplicación, que usa las llamadas de Login API como un cliente. El flujo de interacción entre el cliente y el servidor de Xsolla Login es el siguiente:

  1. El cliente envía solicitudes al servidor de Xsolla Login. El formato de las solicitudes se describe en los puntos finales JWT y Password.
  2. El servidor de Xsolla Login envía solicitudes a su servidor. El encabezado incluye un JWT del servidor con el parámetro “request_type”: “gateway_token”. Para configurar la validación del token, siga las instrucciones. Para configurar la validación de tókenes, siga las instrucciones. Una parte de los datos de identificación del usuario se transmite en el cuerpo del webhook.
  3. Para confirmar la recepción del webhook, su servidor debe devolver: el código HTTP
    • 200, 201 o 204con la descripción del problema si no se encontró el usuario especificado o se transmitió una firma no válida. Su controlador del webhook también puede devolver un código HTTP5xx si se producen problemas temporales en su servidor.
  4. El servidor de Xsolla Login procesa una respuesta de su servidor y devuelve el token de autorización al cliente.
  5. El cliente procesa la respuesta.

Si desea agregar información del usuario al JWT tras la identificación del usuario, devuelva un objeto JSON con cualquier conjunto de parámetros en el cuerpo de la respuesta. Este objeto se guardará en el campo partner_data del JWT.

Nota
La longitud máxima del texto en formato JSON con datos adicionales del usuario es de 1000 caracteres.
Los siguientes datos pueden incorporarse a las propiedades del perfil de usuario:También puede actualizar los atributos de usuario transmitiendo una matriz de objetos con atributos de usuario. Abajo se describe la estructura de estos objetos. Estructura de un objeto con atributos de usuario:
ParámetroTipoDescripción
attr_type
stringDefinición del nivel de acceso del usuario a los atributos de servicio:
  • client - Un atributo editable por el usuario. Los valores para este tipo de atributo son introducidos por el usuario o especificados conforme a la lógica del juego en el lado del cliente. Por ejemplo, el nombre y las estadísticas del personaje, el nivel de dificultad del juego, etc. (por defecto)
  • server - Un atributo de solo lectura. Los valores de este tipo de atributo se introducen y editan en el lado del servidor de su aplicación. Te recomendamos que los utilices para configurar las estadísticas de los personajes del juego o los parámetros de usuario que no deban cambiar regularmente. Por ejemplo, la posibilidad de obtener una bonificación, parámetros clave del personaje del juego, categorías de usuario, etc.
clave
stringEl nombre del atributo que se utiliza para identificar el atributo del usuario. Debe ser único para cada usuario.
Longitud máxima: 256 símbolos. Se pueden utilizar números, caracteres latinos, guiones y guiones bajos.
permiso
string o nullEl tipo de acceso a los atributos del usuario afecta a la lista de atributos devuelta por los métodos:
Valores posibles: public y private (por defecto).
read_only
stringSi el atributo está protegido, o no, de las modificaciones. Por defecto, se permite false y cambiar los valores del atributo.
valor
stringEl valor del atributo de usuario.
Longitud máxima: 256 símbolos.

Registro de usuarios

  1. El cliente envía la solicitud deRegister new user POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: ID del proyecto de Login en Cuenta del editor.
    • Parámetros del cuerpo:
      • username: nombre de usuario. Longitud permitida: de 3 a 255 caracteres.
      • password: contraseña de usuario. Longitud permitida: de 6 a 100 caracteres.
      • email - dirección de correo electrónico. del usuario. Longitud permitida: de 1 a 255 caracteres.
  2. El servidor de Xsolla Login envía un webhook a la URL de nuevo usuario. La respuesta debe tener el formato descrito en este flujo de interacción. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo partner_data del JWT del usuario.

Ejemplo de webhook:

Copy
Full screen
Small screen

http

  • http
  • curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6  "email":"j.smith@email.com",
7  "password":"123456",
8  "username":"j.smith@email.com"
9}
1curl --request POST \
2  --url 'https://your.hostname/your_registration_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

Ejemplo de respuesta a un webhook con atributos de usuario:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Ejemplo de respuesta a un webhook con un objeto JSON:

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Los datos del usuario se escriben en la base de datos de Xsolla, mientras que el email se marca como sin confirmar. El usuario recibirá un correo electrónico de confirmación de la cuenta.
  2. Si ha integrado el widget de Login, se redirigirá al usuario a la página con el siguiente mensaje: Por favor, confirma tu cuenta siguiendo las instrucciones que enviamos a {email}.
  3. Si el registro del usuario no se realiza correctamente, puede proporcionar un mensaje de error que se mostrará en el widget de autenticación. Para ello, en la respuesta a la solicitud de creación del usuario, transmita un objeto de error con los siguientes detalles:
    • en el parámetro de code, especifique 011-002.
    • En el parámetro de description, facilite el texto del mensaje de error.
Ejemplo de objeto con un mensaje de error:
Copy
Full screen
Small screen
1{
2  "error": {
3    "code": "011-002",
4    "description": "<string>"
5  }
6}

Autenticación mediante nombre de usuario y contraseña

  1. El cliente envía la solicitud Auth by username and password POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: ID del proyecto de Login en Cuenta del editor.
    • Parámetros del cuerpo:
      • username: nombre de usuario. Longitud permitida: de 3 a 255 caracteres.
      • password: contraseña de usuario. Longitud permitida: de 6 a 100 caracteres.
  2. El servidor de inicio de sesión de Xsolla envía un webhook a la URL de verificación de usuario. La respuesta debe tener el formato descrito en este flujo de interacción. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo partner_data del JWT del usuario.

Ejemplo de webhook de URL de verificación del usuario:

Copy
Full screen
Small screen

http

  • http
  • curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6  "email":"j.smith@email.com",
7  "password":"123456",
8  "username":"j.smith@email.com"
9}
1curl --request POST \
2  --url 'https://your.hostname/your_authentication_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

Ejemplo de respuesta a un webhook con atributos de usuario:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Ejemplo de respuesta a un webhook con un objeto JSON:

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Si la autenticación del usuario no se realiza adecuadamente, puede mostrar un mensaje de error en el widget de autenticación. Para hacerlo, en la respuesta a la solicitud de creación de un usuario, transmita el objeto error con los siguientes detalles:
    • En el parámetro de code, especifique un código de error; por ejemplo, 011-002.
    • En el parámetro de description, facilite el texto del mensaje de error.
  2. El servidor de Xsolla Login genera un JWT de usuario.
  3. El usuario es redirigido a la login_url con un parámetro de consulta token. El parámetro token contiene el JWT de usuario.
Nota
Se crea un nuevo usuario si no hay datos de usuario escritos en la base de datos de Xsolla.

Autenticación sin contraseña mediante número de teléfono

  1. El cliente abre un formulario de autenticación para que el usuario pueda introducir su número de teléfono.
  2. El usuario introduce su número de teléfono.
  3. El cliente envía la solicitud Start auth by phone number POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: ID del proyecto de Login en Cuenta del editor.
    • El parámetro del cuerpo phone_number: número de teléfono del usuario.
  4. El cliente muestra un campo para que el usuario pueda rellenar el código de verificación.
  5. El usuario introduce el código de verificación recibido

  1. El cliente del juego envía la solicitud de Complete auth by phone number POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: el ID del proyecto de Login en Cuenta del editor.
    • - Parámetros del cuerpo:
      • code - código de confirmación.
      • phone_number - número de teléfono del usuario.
      • operation_id - ID del código de confirmación.
  2. Si es la primera autorización del usuario, el servidor de Xsolla Login envía un webhook a URL de inicio de sesión sin contraseña. La respuesta debe tener el formato descrito en este flujo de interacción. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo partner_data del JWT del usuario.
  3. Si la autenticación del usuario no se supera, puede proporcionar un mensaje de error que se mostrará en el widget de autenticación. Para ello, en la respuesta a la solicitud de creación del usuario, transmita el objeto error con los siguientes detalles:
    • En el parámetro de code, especifique un código de error; por ejemplo, 011-002.
    • En el parámetro de description facilite el texto del mensaje de error.
Ejemplo de webhook:
Copy
Full screen
Small screen

http

  • http
  • curl
1POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6  "login": "+12025550140",
7  "type": "phone"
8}
1curl --request POST \
2  --url 'https://your.hostname/your_phone_authentication_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"login":"+12025550140","type":"phone"}'

Ejemplo de respuesta a un webhook con atributos de usuario:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Ejemplo de respuesta a un webhook con un objeto JSON:

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}

Autenticación sin contraseña con correo electrónico

  1. El cliente abre un formulario de autenticación para que el usuario pueda introducir su dirección de correo electrónico.
  2. El usuario introduce su dirección de correo electrónico.
  3. El cliente envía la solicitud Start auth by email POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: ID del proyecto de Login en Cuenta del editor.
    • El parámetro del cuerpo email: dirección de correo electrónico del usuario.
  4. El cliente muestra un campo para que el usuario pueda rellenar el código de verificación.
  5. El usuario introduce el código de verificación recibido

  1. El cliente del juego envía la solicitud de Complete auth by email POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: el ID del proyecto de Login en Cuenta del editor.
    • - Parámetros del cuerpo:
      • username - nombre de usuario. Longitud permitida: de 3 a 255 caracteres.
      • code - código de confirmación
      • email - dirección de correo electrónico del usuario
      • operation_id - ID del código de confirmación.
  2. Si es la primera autorización del usuario, el servidor de Xsolla Login envía un webhook a URL de inicio de sesión sin contraseña. La respuesta debe tener el formato descrito en este flujo de interacción. En la respuesta, puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo partner_data del JWT del usuario.
  3. Si la autenticación del usuario no se supera, puede proporcionar un mensaje de error que se mostrará en el widget de autenticación. Para ello, en la respuesta a la solicitud de creación del usuario, transmita el objeto error con los siguientes detalles:
    • En el parámetro de code, especifique un código de error; por ejemplo, 011-002.
    • En el parámetro de description facilite el texto del mensaje de error.

Ejemplo de webhook:

Copy
Full screen
Small screen

http

  • http
  • curl
1POST https://your.hostname/your_email_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6  "email": "user@mail.com",
7  "type": "email"
8}
1curl --request POST \
2  --url 'https://your.hostname/your_email_authentication_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email": "user@mail.com","type": "email"}'

Ejemplo de respuesta a un webhook con atributos de usuario:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Ejemplo de respuesta a un webhook con un objeto JSON:

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}

Autenticación mediante redes sociales

Para obtener los datos del usuario al autenticarse a través de redes sociales, especifique la URL de inicio de sesión mediante red social en la configuración de su proyecto de Login en Cuenta del editor (sección User database > Storage > Custom storage). A esta URL se envía una solicitud con los datos recibidos de la red social.

Flujo de autenticación:

  1. El cliente envía la solicitud Auth via social network POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: ID del proyecto de Login en Cuenta del editor.
    • El parámetro de ruta de provider_name: nombre de la red social conectada a Login en Cuenta de editor. Puede ser: amazon, apple, babka, baidu, battlenet, discord, epicgames, facebook, github, google, kakao, linkedin, mailru, microsoft, msn, naver, ok, paypal, qq, reddit, steam, twitch, twitter, vimeo, vk, wechat, weibo, xbox, yahoo, yandex, youtube.
  2. El usuario inicia sesión en una red social.
  3. El servidor de Xsolla Login procesa los datos del usuario recibidos de la red social y envía una solicitud a la URL de inicio de sesión mediante red social. La respuesta debe tener el formato descrito en el flujo de interacción. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo partner_data del JWT del usuario.

Los datos del usuario se transmiten en el encabezado Authorization como un token de puerta de enlace temporal (un token de servidor con “request_type”: “gateway_token”)). Campos principales del token de puerta de enlace:

ReclamaciónTipoDescripción
expMarca de tiempo UnixLa fecha y hora de expiración del JWT. El ciclo de vida del JWT es de 7 minutos. Obligatorio.
iatMarca de tiempo UnixLa fecha y la hora en que se emitió el JWT. Obligatorio.
issstringEl servicio que firmó el JWT: https://login.xsolla.com. Obligatorio.
request_typestringConstante: gateway_request. Obligatorio.
xsolla_login_project_idstring (cadena) (UUID)Su ID de proyecto de Login en Cuenta del editor. Obligatorio.
emailstringDirección de correo electrónico del usuario.
substring (cadena) (UUID)ID de usuario escrito en el lado del servidor de Xsolla Login. Obligatorio.
usernamestringNombre de usuario.
providerstringNombre de la red social utilizada para la autenticación. Obligatorio.
idstringID de usuario en una red social. Obligatorio.
social_access_tokenstringToken de acceso de la red social a través de la cual se autenticó el usuario. Para activar la transmisión de esta notificación, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
partner_datastringDatos de cualquier tipo devueltos por su servidor en el cuerpo de la respuesta durante la autenticación. Para activar la transmisión de esta notificación, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
Ejemplo de carga útil de un token:
Copy
Full screen
Small screen
 1{
 2  "exp": 1573635020,
 3  "iat": 1573634600,
 4  "iss": "https://login.xsolla.com",
 5  "request_type": "gateway_request",
 6  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
 7  "sub": "00000000-0000-0000-0000-000000000000",
 8  "email": "example@test.com",
 9  "username": "Smith707",
10  "provider": "google",
11  "id": "123",
12}

Ejemplo de webhook de URL de inicio de sesión mediante red social:

Copy
Full screen
Small screen

http

  • http
  • curl
1POST https://your.hostname/your_social_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
1curl --request POST \
2  --url 'https://your.hostname/your_social_authentication_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json'

Ejemplo de respuesta a un webhook con atributos de usuario:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

Ejemplo de respuesta a un webhook con un objeto JSON:

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Si la autenticación del usuario no se realiza adecuadamente, puede facilitar un mensaje de error que se mostrará en el widget de autenticación. Para hacerlo, en la respuesta a la solicitud de creación de un usuario, transmita el objeto error con los siguientes detalles:
    • En el parámetro de code, especifique un código de error; por ejemplo, 011-002.
    • En el parámetro de description, facilite el texto del mensaje de error.

Restablecimiento de contraseña de usuario

  1. El cliente envía la solicitud Reset password POST al servidor de Xsolla Login. La solicitud debe incluir el encabezado Authorization: Bearer {JWT} y los siguientes parámetros obligatorios:
    • El parámetro de consulta projectId: - ID del proyecto de Login en Cuenta del editor.
    • Los parámetros del cuerpo de username - nombre de usuario. Longitud permitida: de 3 ta 255 caracteres.
  2. El servidor de Xsolla Login envía al usuario un correo electrónico de confirmación de restablecimiento de contraseña.
  3. Tras confirmar el restablecimiento de contraseña en el correo electrónico, al usuario se le redirige a la página donde puede introducir una nueva contraseña.
  4. El usuario introduce una nueva contraseña.
  5. El servidor de Xsolla Login envía una solicitud a la URL de restablecimiento de contraseña.
  6. Si el restablecimiento de la contraseña no se realiza correctamente, puede proporcionar un mensaje de error que se mostrará en el widget de autenticación. Para ello, en la respuesta a la solicitud de creación de un usuario, transmita el objeto con los siguientes detalles:
    • En el parámetro code , especifique un código de error; por ejemplo, 011-002.
    • En el parámetro description proporcione el texto del mensaje de error.

Ejemplo de webhook de URL de restablecimiento de contraseña:

Copy
Full screen
Small screen

http

  • http
  • curl
 1POST https://your.hostname/your_reset_uri HTTP/1.1
 2Authorization: Bearer {JWT}
 3Content-Type: application/json
 4
 5{
 6  "username": "john@gmail.com",
 7  "fields": {
 8    "password": "NewPa$$word1"
 9  }
10}
1curl --request POST \
2  --url 'https://your.hostname/your_reset_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.

Seguir leyendo

Última actualización: 18 de Junio de 2025

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!
No hemos podido enviar sus comentarios
Vuelva a intentarlo más tarde o escríbanos a doc_feedback@xsolla.com.