Login / Registro retrasado en los juegos de navegador
  Volver a Documentos

Login

Registro retrasado en los juegos de navegador

Cómo funciona

El usuario puede iniciar un juego en un navegador sin registrarse. Después de cierto tiempo, se pedirá al usuario que se registre y su progreso en el juego se guardará. El tiempo de espera del registro debe implementarse en el lado del juego.

El flujo de interacción entre el usuario y el juego es el siguiente:

  1. El usuario no autorizado inicia el juego.
  2. El juego relaciona al usuario con la información de sesión.
  3. Después de un cierto tiempo, el juego pide al usuario que se registre para poder continuar.
  4. El juego envía una solicitud de registro con la información de sesión transmitida al servidor de Xsolla Login.
  5. El servidor de Xsolla Login registra al usuario. Como resultado del registro, la información sobre la sesión se transmite en el JWT de usuario.
  6. El juego transfiere el progreso al usuario registrado.
  7. El usuario sigue jugando según lo autorizado.

Nota
El identificador de sesión o string (cadena) de JSON con información sobre el progreso del usuario se transmite como información sobre la sesión del usuario.

¿Quién puede utilizarlo?

Socios que ya han integrado Login y tienen un juego de navegador.

Cómo conseguirlo

Para guardar el progreso del usuario después de registrarse en el juego:

  1. Transmita la información sobre la sesión del usuario al registrarse.
  2. Transfiera el progreso del juego al usuario.

Transmitir información sobre la sesión del usuario

La transmisión de información sobre la sesión del usuario depende de la integración de Login:

Integrar mediante Login API

Transmita el parámetro payload a la solicitud Register new user. Especifique la información sobre la sesión del usuario como valor para este parámetro.

Ejemplo de solicitud (identificador de la sesión del usuario):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123 HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=my_session_123' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Ejemplo de solicitud (string de JSON con información sobre el progreso del usuario):

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/user?login_url=https://example.com&projectId=00000000-0000-0000-0000-000000000000&payload={"coins":120,"lvl":2} HTTP/1.1
Content-Type: application/json

{
  "username": "John Smith",
  "password": "123456",
  "email": "john-email@email.com"
}
curl --request POST \
  --url 'https://login.xsolla.com/api/user?login_url=https%3A%2F%2Fexample.com&projectId=00000000-0000-0000-0000-000000000000&payload=%7B%22coins%22%3A120%2C%22lvl%22%3A2%7D' \
  --header 'content-type: application/json' \
  --data '{"username":"John Smith","password":"123456","email":"john-email@email.com"}'

Integrar mediante widget de Login

Agregue el parámetro payload al código de inicialización del widget. Especifique la información sobre la sesión del usuario como valor para este parámetro.

Ejemplo del código de inicialización del widget (identificador de la sesión del usuario):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: 'my_session_123'
});
</script>

Ejemplo del código de inicialización del widget (string de JSON con información sobre el progreso del usuario):

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: '00000000-0000-0000-0000-000000000000',
  preferredLocale: 'en_US',
  callbackUrl: 'https://example.com',
  payload: '{"coins":120,"lvl":2}'
});
</script>

Transferir el progreso del juego al usuario

Tras el registro, la información sobre la sesión del usuario se transmite en la notificación payload del usuario de JWT. Utilice esta información para transferir el progreso recibido durante la sesión. Puede encontrar el identificador del usuario registrado en la notificación sub del JWT de usuario.

Ejemplo de la payload del JWT (identificador de la sesión del usuario):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "my_session_123",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}

Ejemplo de la payload del JWT (string de JSON con información sobre el progreso del usuario):

Copy
Full screen
Small screen
{
  "email": "john-email@email.com",
  "exp": 1597904900,
  "iat": 1597818500,
  "is_master": true,
  "iss": "https://login.xsolla.com",
  "payload": "{\"coins\":120,\"lvl\":2}",
  "promo_email_agreement": true,
  "publisher_id": 0,
  "sub": "00000000-0000-0000-0000-000000000000",
  "type": "xsolla_login",
  "username": "John Smith",
  "xsolla_login_access_key": "422nH1zNMIVKCesi7r4YdQXQY-jgbf2CIcvGdCREDIA",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}
¿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!
Última actualización: 22 de Enero 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!