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:
- El usuario no autorizado inicia el juego.
- El juego relaciona al usuario con la información de sesión.
- Después de un cierto tiempo, el juego pide al usuario que se registre para poder continuar.
- El juego envía una solicitud de registro con la información de sesión transmitida al servidor de Xsolla Login.
- 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.
- El juego transfiere el progreso al usuario registrado.
- El usuario sigue jugando según lo autorizado.
¿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:
- Transmita la información sobre la sesión del usuario al registrarse.
- 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
Ejemplo de solicitud (identificador de la sesión del usuario):
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):
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):
- html
<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):
- html
<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
- json
{
"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
- json
{
"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"
}
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.