Inscription différée dans les jeux par navigateur
Comment ça marche
L’utilisateur peut commencer un jeu dans un navigateur sans s’enregistrer. Après un certain temps, l’utilisateur sera invité à s’enregistrer et sa progression dans le jeu sera sauvegardée. Le temps d’attente de l’enregistrement doit être implémenté du côté du jeu.
Le flux d’interaction entre l’utilisateur et le jeu est le suivant :
- L’utilisateur non autorisé démarre le jeu.
- Le jeu associe l’utilisateur aux informations de session.
- Après un certain temps, le jeu demande à l’utilisateur de s’enregistrer pour pouvoir continuer.
- Le jeu envoie une demande d’enregistrement avec les informations de session passées au serveur Xsolla Login.
- Le serveur Xsolla Login enregistre l’utilisateur. Suite à l’enregistrement, les informations relatives à la session sont passées au JWT utilisateur.
- Le jeu transfère la progression à l’utilisateur enregistré.
- L’utilisateur continue à jouer comme utilisateur autorisé.
Qui peut l'utiliser
Les partenaires qui ont déjà intégré Login et qui disposent d’un jeu sur navigateur.
Comment configurer
Pour sauvegarder la progression de l’utilisateur après l’enregistrement dans le jeu :
- Passez les informations sur la session de l’utilisateur lors de l’enregistrement.
- Transférez la progression du jeu à l’utilisateur.
Passage des informations sur la session de l'utilisateur
Le passage d’informations sur la session de l’utilisateur dépend de l’intégration de Login :Intégration via Login API
Passez le paramètre payload
à la requête
Exemple de requête (identifiant de la session de l’utilisateur) :
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"}'
Exemple de requête (chaîne JSON contenant des informations sur la progression de l’utilisateur) :
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"}'
Intégration via le widget Login
Ajoutez le paramètre payload
au code d’initialisation du widget. Spécifiez les informations sur la session de l’utilisateur comme valeur de ce paramètre.
Exemple de code d’initialisation du widget (identifiant de la session de l’utilisateur) :
- 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>
Exemple de code d’initialisation du widget (chaîne JSON contenant des informations sur la progression de l’utilisateur) :
- 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>
Transfert de la progression du jeu à l'utilisateur
Après l’enregistrement, les informations sur la session de l’utilisateur sont transmises dans la revendication payload
du JWT utilisateur. Utilisez ces informations pour transférer la progression reçue au cours de la session. Vous trouverez l’identifiant de l’utilisateur enregistré dans la revendication sub
du JWT utilisateur.
Exemple de
- 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"
}
Exemple de
- 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"
}
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.