Stockage de données utilisateur personnalisé

Si vous utilisez un stockage de données utilisateur personnalisé, Xsolla Login agit en tant qu’intermédiaire et toutes les données d’identification utilisateur sont stockées de votre côté. Xsolla Login passe les données d’authentification dans le jeton inclus dans l’en-tête des webhooks ainsi que dans leur corps.

Note
Les adresses e-mail des utilisateurs, les données des médias sociaux et les attributs des utilisateurs sont stockés du côté de Xsolla. Les mots de passe ne le sont pas.
Si vous utilisez un stockage personnalisé, vous avez accès aux fonctionnalités suivantes :
Note
Si vous testez l’intégration localement, les requêtes POST Xsolla ne parviennent pas à des URL telles que http://localhost:3000/my-webhook-endpoint. Ngrok vous permet de créer un tunnel d’accès externe, vous offrant ainsi la possibilité de recevoir les requêtes Xsolla localement. Pour en savoir plus à ce sujet, consultez la documentation de ngrok. Si vous testez l’intégration localement, les requêtes POST Xsolla ne parviennent pas à des URL telles que http://localhost:3000/my-webhook-endpoint. Ngrok vous permet de créer un tunnel d’accès externe, vous offrant ainsi la possibilité de recevoir les requêtes Xsolla localement. Pour en savoir plus à ce sujet, consultez la documentation de ngrok.

Flux d'interaction

Vous pouvez utiliser le widget de connexion ou votre application, qui utilise les appels Login API, comme client. Le flux d’interaction entre le client et le serveur Xsolla Login est comme suit :

  1. Le client envoie des requêtes au serveur Xsolla Login. Le format des requêtes est décrit dans les endpoints JWT et Password.
  2. Le serveur Xsolla Login envoie des webhooks à votre serveur. L’en-tête comprend un JWT serveur avec le paramètre “request_type”: “gateway_token”. Pour configurer la validation du jeton, suivez ces instructions. Une partie des données d’identification utilisateur est passée dans le corps du webhook.
  3. Pour confirmer la réception du webhook, votre serveur doit renvoyer :
    • un code HTTP 200, 201 ou 204 en cas de réponse positive ;
    • un code HTTP 400 avec une description du problème si l’utilisateur spécifié n’a pas été trouvé ou si une signature non valide a été passée. Votre gestionnaire de webhooks peut également renvoyer un code HTTP 5xx en cas de problèmes temporaires sur votre serveur.
  4. Le serveur Xsolla Login traite la réponse de votre serveur et renvoie le jeton d’autorisation au client.
  5. Le client traite la réponse.

Si vous souhaitez ajouter des informations sur l’utilisateur au JWT après son identification, renvoyez un objet JSON avec l’ensemble de paramètres souhaités dans le corps de la réponse. Cet objet sera enregistré dans le champ partner_data du JWT.

Note
La longueur maximale du JSON contenant des données utilisateur supplémentaires est de 1000 caractères.
Les données suivantes peuvent être ajoutées aux propriétés du profil utilisateur :Vous pouvez également mettre à jour les attributs utilisateur en passant un tableau d’objets d’attributs utilisateur. La structure de ces objets est décrite ci-dessous. Structure d’un objet d’attributs utilisateur :
ParamètreTypeDescription
attr_type
stringDéfinition du niveau d’accès de l’utilisateur aux attributs de service :
  • client — Attribut modifiable par l’utilisateur. Les valeurs de ce type d’attribut sont saisies par l’utilisateur ou spécifiées selon la logique du jeu côté client. Par exemple, le nom et les statistiques du personnage, le niveau de difficulté du jeu, etc. (valeur par défaut)
  • server — Attribut en lecture seule. Les valeurs de ce type d’attribut sont saisies et modifiées côté serveur de votre application. Nous vous recommandons de les utiliser pour configurer les statistiques des personnages du jeu ou les paramètres utilisateur qui ne devraient pas changer régulièrement. Par exemple, les chances d’obtenir un bonus, les paramètres clés des personnages du jeu, les catégories d’utilisateurs, etc.
key
stringNom de l’attribut utilisé pour identifier l’attribut utilisateur. Il doit être unique pour chaque utilisateur.
Longueur maximale : 256 symboles. Vous pouvez utiliser des chiffres, des lettres latines, des traits d’union et des tirets bas.
permission
string or nullLe type d’accès aux attributs utilisateur affecte la liste des attributs renvoyés par les méthodes :
Valeurs possibles : public ou private (valeur par défaut).
read_only
stringDétermine si l’attribut est protégé contre les modifications. Par défaut, la valeur est false : les modifications des valeurs des attributs sont autorisées.
value
stringValeur de l’attribut utilisateur.
Longueur maximale : 256 symboles.

Enregistrement utilisateur

  1. Le client envoie la requête POST Register new user au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :

    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Les paramètres de corps suivants :
      • username — nom d'utilisateur. Longueur autorisée : 3 à 255 caractères,
      • password — mot de passe d'utilisateur. Longueur autorisée : 6 à 100 caractères,
      • email — adresse e-mail de l'utilisateur. Longueur autorisée : 1 à 255 caractères.
  2. Le serveur Xsolla Login envoie un webhook à l'URL de nouvel utilisateur. La réponse doit être dans le format décrit dans le flux d'interaction. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur et/ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ partner_data du JWT utilisateur.

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

Exemple de réponse à un webhook avec des attributs utilisateur :

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}

Exemple de réponse à un webhook avec un objet JSON :

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Les données utilisateur sont enregistrées dans la base de données Xsolla tant que l'email est marqué comme non confirmé. L'utilisateur recevra un e-mail de confirmation de compte.
  2. Si vous avez intégré le widget Login, l'utilisateur sera redirigé vers une page affichant le message suivant : Please confirm your account following the instructions we sent to {email}.
  3. Si l'inscription de l'utilisateur échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple, 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.
Exemple d’objet avec un message d’erreur :
Copy
Full screen
Small screen
1{
2  "error": {
3    "code": "011-002",
4    "description": "<string>"
5  }
6}

Authentification par nom d'utilisateur et mot de passe

  1. Le client envoie la requête POST Auth by username and password au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Les paramètres de corps suivants :
      • username — nom d'utilisateur. Longueur autorisée : 3 à 255 caractères,
      • password — mot de passe d'utilisateur. Longueur autorisée : 6 à 100 caractères.
  2. Le serveur Xsolla Login envoie un webhook à l'URL de vérification utilisateur. La réponse doit être dans le format décrit dans ce flux d'interaction. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur et/ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ partner_data du JWT utilisateur.

Exemple de webhook à l’URL de vérification utilisateur :

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

Exemple de réponse à un webhook avec des attributs utilisateur :

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}

Exemple de réponse à un webhook avec un objet JSON :

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Si l'authentification utilisateur échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.
  2. Le serveur Xsolla Login génère un JWT utilisateur.
  3. L'utilisateur est redirigé vers login_url avec un paramètre de requête token. Le paramètre token contient le JWT utilisateur.
Note
Un nouvel utilisateur est créé s’il n’y a aucune donnée utilisateur dans la base de données Xsolla.

Authentification sans mot de passe par numéro de téléphone

  1. Le client ouvre un formulaire d'authentification pour que l'utilisateur puisse entrer son numéro de téléphone.
  2. L'utilisateur entre son numéro de téléphone.
  3. Le client envoie la requête POST Start auth by phone number au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Le paramètre de corps phone_number — numéro de téléphone de l'utilisateur.
  4. Le client affiche un champ permettant à l'utilisateur de saisir le code de vérification.
  5. L'utilisateur saisit le code de vérification reçu.

  1. Le client envoie la requête POST Complete auth by phone number au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Les paramètres de corps suivants :
      • code — code de confirmation,
      • phone_number — numéro de téléphone de l'utilisateur,
      • operation_id — ID de code de confirmation.
  2. S'il s'agit de la première autorisation de l'utilisateur, le serveur Xsolla Login envoie un webhook à l'URL de connexion sans mot de passe. La réponse doit être dans le format décrit dans le flux d'interaction. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur et/ou tout objet JSON nécessaire. L'objet JSON que vous fournissez dans la réponse est enregistré dans le champ partner_data du JWT utilisateur.
  3. Si l'authentification utilisateur échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.
Exemple 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"}'

Exemple de réponse à un webhook avec des attributs utilisateur :

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}

Exemple de réponse à un webhook avec un objet JSON :

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

Authentification sans mot de passe par e-mail

  1. Le client ouvre un formulaire d'authentification pour que l'utilisateur puisse entrer son adresse e-mail.
  2. L'utilisateur entre son adresse e-mail.
  3. Le client envoie la requête POST Start auth by email au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Le paramètre de corps email — adresse e-mail de l'utilisateur.
  4. Le client affiche un champ permettant à l'utilisateur de saisir le code de vérification.
  5. L'utilisateur saisit le code de vérification reçu.

  1. Le client envoie la requête POST Complete auth by email au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Les paramètres de corps suivants :
      • username — nom d'utilisateur. Longueur autorisée : 3 à 255 caractères,
      • code — code de confirmation,
      • email — adresse e-mail de l'utilisateur,
      • operation_id — ID de code de confirmation.
  2. S'il s'agit de la première autorisation de l'utilisateur, le serveur Xsolla Login envoie un webhook à l'URL de connexion sans mot de passe. La réponse doit être dans le format décrit dans le flux d'interaction. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur et/ou tout objet JSON nécessaire. L'objet JSON que vous fournissez dans la réponse est enregistré dans le champ partner_data du JWT utilisateur.
  3. Si l'authentification utilisateur échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.

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

Exemple de réponse à un webhook avec des attributs utilisateur :

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}

Exemple de réponse à un webhook avec un objet JSON :

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

Authentification via les réseaux sociaux

Pour obtenir les données utilisateur lors de l’authentification via les réseaux sociaux, spécifiez Social Login URL dans les paramètres de votre projet de connexion dans le Compte utilisateur (section User database > Storage > Custom storage). Une requête contenant les données reçues du réseau social est envoyée à cette URL.

Flux d’authentification :

  1. Le client envoie la requête POST Auth via social network au serveur Xsolla Login. La requête doit inclure l’en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Le paramètre de chemin provider_name — nom du réseau social connecté à Login dans le Compte éditeur. Il peut s’agir de : 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. L’utilisateur se connecte à un réseau social.
  3. Le serveur Xsolla Login traite les données utilisateur reçues du réseau social et envoie un webhook à l’URL de connexion via les réseaux sociaux. La réponse doit être dans le format décrit dans le flux d’interaction. Dans la réponse, vous pouvez spécifier une liste d’attributs utilisateur et/ou tout objet JSON nécessaire. L’objet JSON que vous fournissez dans la réponse est enregistré dans le champ partner_data du JWT de l’utilisateur.

Les données utilisateur sont passées dans l’en-tête Authorization sous la forme d’un jeton de passerelle temporaire (un jeton serveur avec “request_type”: “gateway_token”). Principaux champs du jeton de passerelle :

RevendicationTypeDescription
expUnix TimestampDate et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire.
iatUnix TimestampDate et heure d’émission du JWT. Obligatoire.
issstringService ayant signé le JWT : https://login.xsolla.com. Obligatoire.
request_typestringConstante : gateway_request. Obligatoire.
xsolla_login_project_idstring (UUID)ID de votre projet de connexion dans le Compte éditeur. Obligatoire.
emailstringAdresse e-mail utilisateur.
substring (UUID)ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire.
usernamestringNom d’utilisateur.
providerstringNom du réseau social utilisé pour l’authentification. Obligatoire.
idstringID utilisateur dans le réseau social. Obligatoire.
social_access_tokenstringJeton d’accès du réseau social par lequel l’utilisateur a été authentifié. Pour permettre la transmission de cette requête, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
partner_datastringDonnées de tout type retournées par votre serveur dans le corps de la réponse lors de l’authentification. Pour permettre la transmission de cette réclamation, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
Exemple de charge utile d’un jeton :
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}

Exemple de webhook à l’URL de connexion via les réseaux sociaux :

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'

Exemple de réponse à un webhook avec des attributs utilisateur :

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}

Exemple de réponse à un webhook avec un objet JSON :

Copy
Full screen
Small screen
1{ 
2    "id": 123456,
3    "role": "scout"
4}
  1. Si l'authentification utilisateur échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.

Réinitialisation du mot de passe utilisateur

  1. Le client envoie la requête POST Reset password au serveur Xsolla Login. La requête doit inclure l'en-tête Authorization: Bearer {JWT} et les paramètres obligatoires suivants :
    • Le paramètre de requête projectId — ID du projet de Login dans le Compte éditeur ;
    • Le paramètre de corps username — nom d'utilisateur. Longueur autorisée : 3 à 255 caractères.
  2. Le serveur Xsolla Login envoie à l'utilisateur un e-mail de confirmation de réinitialisation du mot de passe.
  3. Après avoir confirmé la réinitialisation du mot de passe via l'e-mail, l'utilisateur est redirigé vers la page de saisie du nouveau mot de passe.
  4. L'utilisateur saisit un nouveau mot de passe.
  5. Le serveur Xsolla Login envoie un webhook à l'URL de réinitialisation du mot de passe.
  6. Si la réinitialisation du mot de passe échoue, fournissez un message d'erreur qui s'affichera dans le widget d'authentification. Pour ce faire, dans la réponse à la requête de création d'utilisateur, passez l'objet error avec les informations suivantes :
    • Dans le paramètre code, spécifiez un code d'erreur, par exemple 011-002 ;
    • Dans le paramètre description, fournissez le texte du message d'erreur.

Exemple de webhook à l’URL de réinitialisation du mot de passe :

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"}}'
Cet article vous a été utile ?
Merci !
Que pouvons-nous améliorer ? Message
Nous sommes désolés de l'apprendre
Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
Merci pour votre commentaire !
Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.

Poursuivre la lecture

Dernière mise à jour: 16 Mai 2025

Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.

Signaler un problème
Nous améliorons continuellement notre contenu grâce à vos commentaires.
Indiquez votre adresse e-mail pour un suivi
Merci pour votre commentaire !
Impossible d'envoyer votre commentaire
Réessayez plus tard ou contactez-nous à doc_feedback@xsolla.com.