Login / Almacenamiento personalizado
  Volver a Documentos

Login

Almacenamiento personalizado

Si utiliza el almacenamiento personalizado, tendrá acceso a:

Flujo de interacción

Puede utilizar el widget de inicio de sesión (Login) o su aplicación, que usa las llamadas 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. Siga las instrucciones para validar las solicitudes.
  3. El servidor de Xsolla Login procesa una respuesta de su servidor y devuelve los resultados al cliente.
  4. El cliente procesa la respuesta.

Como respuesta a una solicitud del servidor, puede obtener información sobre el usuario en forma de estructura:

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).
valor
stringEl valor del atributo de usuario.
Longitud máxima: 256 símbolos.

Registro de usuarios

  1. El cliente envía la solicitud Register new user al servidor de Xsolla Login.
  2. El servidor de Xsolla Login envía una solicitud a la URL de nuevo usuario. La respuesta debe tener el formato descrito en estas instrucciones. En la respuesta, se puede especificar una lista de atributos del usuario.

Ejemplo de respuesta de URL de nuevo usuario:

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

Ejemplo de solicitud:

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
          }
        ]
    }
    
    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 cuenta.
    2. Si ha integrado el widget de Login, el usuario será redirigido 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 de 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
      {
        "error": {
          "code": "011-002",
          "description": "<string>"
        }
      }
      

      Autenticación mediante nombre de usuario y contraseña

      1. El cliente envía la solicitud Auth by username and password al servidor de Xsolla Login.
      2. El servidor de Xsolla Login envía una solicitud a la URL de verificación de usuario. La respuesta debe tener el formato descrito en estas instrucciones.

      Ejemplo de respuesta de URL de nuevo usuario:

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

      Ejemplo de solicitud:

      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
              }
            ]
        }
        
        1. El servidor de Xsolla Login genera un JWT de usuario.
        2. El usuario es redirigido a 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 al servidor de Xsolla Login.
        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.
        6. El cliente envía la solicitud Complete auth by phone number al servidor de Xsolla Login.
        7. Si se trata de la primera autorización del usuario, el servidor de Xsolla Login envía una solicitud a la URL de inicio de sesión sin contraseña vía teléfono. La respuesta debe tener el formato descrito en estas instrucciones.

        Ejemplo de respuesta de URL de nuevo usuario:

        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"}'
        

        Ejemplo de solicitud:

        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
                }
              ]
          }
          

          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 al servidor de Xsolla Login.
          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 las instrucciones.

          La solicitud contiene datos en el token temporal del encabezado Authorization: Bearer <JWT>. El JWT de usuario transmitido en la solicitud contiene los siguientes datos:

          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.
          Ejemplo de carga útil de un 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",
          }
          

          Ejemplo de respuesta de URL de nuevo usuario:

          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'
          

          Ejemplo de solicitud:

          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
                  }
                ]
            }
            

            Restablecimiento de contraseña de usuario

            1. El cliente envía la solicitud Reset password al servidor de Xsolla Login.
            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. La respuesta debe tener el formato descrito en estas instrucciones.

            Ejemplo de respuesta de URL de nuevo usuario:

            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"}}'
            
            ¿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.
            Valore esta página
            Valore esta página
            ¿Hay algo en lo que podamos mejorar?

            Prefiero no responder

            ¡Gracias por tu mensaje!

            Seguir leyendo

            Última actualización: 27 de Febrero de 2024

            ¿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!