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.
- enregistrement utilisateur ;
- authentification par nom d’utilisateur et mot de passe ;
- authentification sans mot de passe par numéro de téléphone ;
- authentification sans mot de passe par e-mail ;
- authentification via les réseaux sociaux ;
- réinitialisation du mot de passe utilisateur.
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 :
- Le client envoie des requêtes au serveur Xsolla Login. Le format des requêtes est décrit dans les méthodes d’authentification.
- 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. - Pour confirmer la réception du webhook, votre serveur doit renvoyer :
- un code HTTP
200,201ou204en cas de réponse positive ; - un code HTTP
400avec 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 HTTP5xxen cas de problèmes temporaires sur votre serveur.
- un code HTTP
- Le serveur Xsolla Login traite la réponse de votre serveur et renvoie le jeton d’autorisation au client.
- Le client traite la réponse.
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent' }}}%%
sequenceDiagram
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
YC->>XL: Envoie une demande
XL->>YS: Envoie un webhoook
activate YS
YS-->>XL: Renvoie le code HTTP
deactivate YS
XL-->>YC: Renvoie un jeton d’autorisation
activate YC
note right of YC: Traite la réponse
deactivate YC
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.
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 :
- Le client envoie des requêtes au serveur Xsolla Login. Le format des requêtes est décrit dans les méthodes d’authentification.
- 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. - Pour confirmer la réception du webhook, votre serveur doit renvoyer :
- un code HTTP
200,201ou204en cas de réponse positive ; - un code HTTP
400avec 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 webhook peut également renvoyer un code HTTP5xxen cas de problèmes temporaires sur votre serveur.
- un code HTTP
- Le serveur Xsolla Login traite la réponse de votre serveur et renvoie le jeton d’autorisation au client.
- Le client envoie la requête
POSTGenerate JWT au serveur Xsolla Login. Le corps de la requête doit inclure les paramètres obligatoires suivants :grant_type— type d’attribution JWT ; passez la valeurauthorization_code;client_id— ID client OAuth 2.0 ;client_secret— ID client secret OAuth 2.0. Requis pour l’authentification de type confidentiel ;code— code d’autorisation.
- Le serveur Xsolla Login renvoie au client une paire de jetons JWT : un jeton d’accès et un jeton d’actualisation.
- Le client traite la réponse.
- Lorsque le jeton d’accès expire, le client envoie la requête
POSTGenerate JWT au serveur Xsolla Login. Le corps de la requête doit inclure les paramètres suivants :grant_type— type de jeton JWT ; passez la valeurrefresh_token;client_id— ID client OAuth 2.0 ;refresh_token— jeton d’actualisation reçu lors de la réponse à la requête d’autorisation utilisateur.
Vous pouvez ajouter des informations utilisateur au JWT lors de l’authentification et/ou de l’actualisation du token en retournant, dans le corps de la réponse, un objet JSON avec l’ensemble de paramètres souhaités. Cet objet sera enregistré dans le champ partner_data du JWT.
- pseudo ;
- date de naissance ;
- prénom ;
- nom ;
- ID utilisateur sur votre serveur.
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ètre | Type | Description |
|---|---|---|
attr_type | string | Définition du niveau d’accès de l’utilisateur aux attributs de service :
|
key | string | Nom 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 null | Le 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 | string | Dé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 | string | Valeur de l’attribut utilisateur. Longueur maximale : 256 symboles. |
Enregistrement utilisateur
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre les informations d'inscription
YC->>XL: Envoie une demande d’enregistrement utilisateur
XL->>YS: Envoie un webhoook
alt Enregistrement réussi
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le JWT utilisateur
YC-->>U: Informe l'utilisateur
else Échec de l'enregistrement
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'enregistrement
YC-->>U: Affiche un message d'erreur
end
- Le client envoie la requête
POSTRegister new user au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètres de corps :
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.
- Paramètre de requête
- 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_datadu JWT utilisateur.
- Le client envoie la requête
POSTRegister new user au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètres de corps :
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.
- Paramètre de requête
- 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_datadu JWT utilisateur.
- Le client envoie la requête
POSTRegister new user au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètres de corps :
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.
- Paramètre de requête
- 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_datadu JWT utilisateur.
Exemple de webhook :
http
- http
- curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"[email protected]",
7 "password":"123456",
8 "username":"[email protected]"
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":"[email protected]","password":"123456","username":"[email protected]"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- Les données utilisateur sont enregistrées dans la base de données Xsolla tant que l'
emailest marqué comme non confirmé. L'utilisateur recevra un e-mail de confirmation de compte. - 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}.
- 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
erroravec 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.
- Dans le paramètre
Exemple d’objet avec un message d’erreur :
- json
1{
2 "error": {
3 "code": "011-002",
4 "description": "<string>"
5 }
6}
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre les informations d'inscription
YC->>XL: Envoie une demande d’enregistrement utilisateur
XL->>YS: Envoie un webhoook
alt Enregistrement réussi
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le code d'autorisation
YC->>XL: Envoie une demande de génération du JWT utilisateur
XL-->>YC: Renvoie le JWT de l'utilisateur et le jeton d'actualisation
YC-->>U: Informe l'utilisateur
else Échec de l'enregistrement
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'enregistrement
YC-->>U: Affiche un message d'erreur
end
- Le client envoie la requête
POSTRegister new user au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètres de requête :
response_type— type d’attribution JWT ; passez la valeurcode;client_id— ID client OAuth 2.0 ;state— valeur utilisée pour une authentification utilisateur supplémentaire. Requise pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètres de corps :
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.
- Paramètres de requête :
- 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_datadu JWT utilisateur.
Exemple de webhook :
http
- http
- curl
1POST https://your.hostname/your_registration_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"[email protected]",
7 "password":"123456",
8 "username":"[email protected]"
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":"[email protected]","password":"123456","username":"[email protected]"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- Les données utilisateur sont enregistrées dans la base de données Xsolla tant que l'
emailest marqué comme non confirmé. L'utilisateur recevra un e-mail de confirmation de compte. - 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}.
- 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
erroravec 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.
- Dans le paramètre
Exemple d’objet avec un message d’erreur :
- json
1{
2 "error": {
3 "code": "011-002",
4 "description": "<string>"
5 }
6}
Authentification par nom d'utilisateur et mot de passe
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre le nom d'utilisateur et le mot de passe
YC->>XL: Envoie une demande d'authentification de l'utilisateur
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le JWT utilisateur
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client envoie la requête
POSTAuth by username and password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètres de corps :
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères,password— mot de passe d’utilisateur. Longueur autorisée : 6 à 100 caractères.
- Paramètre de requête
- 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_datadu JWT utilisateur.
- Le client envoie la requête
POSTAuth by username and password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètres de corps :
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères,password— mot de passe d’utilisateur. Longueur autorisée : 6 à 100 caractères.
- Paramètre de requête
- 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_datadu JWT utilisateur.
- Le client envoie la requête
POSTAuth by username and password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètres de corps :
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères.password— mot de passe d’utilisateur. Longueur autorisée : 6 à 100 caractères.
- Paramètre de requête
- 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_datadu JWT utilisateur.
Exemple de webhook à l’URL de vérification utilisateur :
http
- http
- curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"[email protected]",
7 "password":"123456",
8 "username":"[email protected]"
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":"[email protected]","password":"123456","username":"[email protected]"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d'erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d'erreur.
- Dans le paramètre
- Le serveur Xsolla Login génère un JWT utilisateur.
- L'utilisateur est redirigé vers
login_urlavec un paramètre de requêtetoken. Le paramètretokencontient le JWT utilisateur.
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre le nom d'utilisateur et le mot de passe
YC->>XL: Envoie une demande d'authentification de l'utilisateur
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le code d'autorisation
YC->>XL: Envoie une demande de génération du JWT utilisateur
XL-->>YC: Renvoie le JWT de l'utilisateur et le jeton d'actualisation
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client envoie la requête
POSTAuth by username and password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètres de requête :
response_type— type d’attribution JWT ; passez la valeurcode;client_id— ID client OAuth 2.0 ;state— valeur utilisée pour une authentification utilisateur supplémentaire. Requise pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètres de corps :
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères ;password— mot de passe d’utilisateur. Longueur autorisée : 6 à 100 caractères.
- Paramètres de requête :
- 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_datadu JWT utilisateur.
Exemple de webhook à l’URL de vérification utilisateur :
http
- http
- curl
1POST https://your.hostname/your_authentication_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "email":"[email protected]",
7 "password":"123456",
8 "username":"[email protected]"
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":"[email protected]","password":"123456","username":"[email protected]"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d'erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d'erreur.
- Dans le paramètre
- Le serveur Xsolla Login génère un JWT utilisateur.
- L'utilisateur est redirigé vers
login_urlavec un paramètre de requêtetoken. Le paramètretokencontient le JWT utilisateur.
Authentification sans mot de passe par numéro de téléphone
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre le numéro de téléphone
YC->>XL: Envoie une requête pour démarrer l'authentification via le numéro de téléphone
XL-->>U: Envoie un SMS avec le code de confirmation
U->>YC: Entre le code de confirmation
YC->>XL: Envoie une requête pour finaliser l'authentification via le numéro de téléphone
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le JWT utilisateur
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son numéro de téléphone.
- L’utilisateur entre son numéro de téléphone.
- Le client envoie la requête
POSTStart auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètre de corps
phone_number— numéro de téléphone de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètres de corps :
code— code de confirmation,phone_number— numéro de téléphone de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son numéro de téléphone.
- L’utilisateur entre son numéro de téléphone.
- Le client envoie la requête
POSTStart auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètre de corps
phone_number— numéro de téléphone de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètres de corps :
code— code de confirmation,phone_number— numéro de téléphone de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son numéro de téléphone.
- L’utilisateur entre son numéro de téléphone.
- Le client envoie la requête
POSTStart auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de corps
phone_number— numéro de téléphone de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètres de corps :
code— code de confirmation.phone_number— numéro de téléphone de l’utilisateur.operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - Si l’authentification utilisateur échoue, vous pouvez fournir 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002. - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
Exemple de webhook :
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 :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre le numéro de téléphone
YC->>XL: Envoie une requête pour démarrer l'authentification via le numéro de téléphone
XL-->>U: Envoie un SMS avec le code de confirmation
U->>YC: Entre le code de confirmation
YC->>XL: Envoie une requête pour finaliser l'authentification via le numéro de téléphone
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le code d'autorisation
YC->>XL: Envoie une demande de génération du JWT utilisateur
XL-->>YC: Renvoie le JWT de l'utilisateur et le jeton d'actualisation
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son numéro de téléphone.
- L’utilisateur entre son numéro de téléphone
- Le client envoie la requête
POSTStart auth by phone number au serveur Xsolla Login. La requête doit contenir les paramètres obligatoires suivants :- Paramètres de requête :
response_type— type d’attribution JWT ; utilisez la valeurcode;client_id— ID client OAuth 2.0 ;state— valeur utilisée pour une authentification utilisateur supplémentaire. Obligatoire pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètres de corps
phone_number— numéro de téléphone de l’utilisateur.
- Paramètres de requête :
- Le client affiche un champ pour que l’utilisateur saisisse le code de vérification.
- eur entre le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by phone number au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
client_id— ID client OAuth 2.0 ; - Paramètres de corps :
code— code de confirmation,phone_number— numéro de téléphone de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
Exemple de webhook :
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 :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
Authentification sans mot de passe par e-mail
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre l'adresse e-mail
YC->>XL: Envoie une requête pour démarrer l'authentification par adresse e-mail
XL-->>U: Envoie un e-mail avec le code de confirmation
U->>YC: Entre le code de confirmation
YC->>XL: Envoie une requête pour finaliser l'authentification par adresse e-mail
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le JWT utilisateur
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son adresse e-mail.
- L’utilisateur entre son adresse e-mail.
- Le client envoie la requête
POSTStart auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètre de corps
email— adresse e-mail de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètres de corps :
code— code de confirmation,email— adresse e-mail de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son adresse e-mail.
- L’utilisateur entre son adresse e-mail.
- Le client envoie la requête
POSTStart auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètre de corps
email— adresse e-mail de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètres de corps :
code— code de confirmation,email— adresse e-mail de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son adresse e-mail.
- L’utilisateur entre son adresse e-mail.
- Le client envoie la requête
POSTStart auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de corps
email— adresse e-mail de l’utilisateur.
- Paramètre de requête
- Le client affiche un champ permettant à l’utilisateur de saisir le code de vérification.
- L’utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètres de corps :
code— code de confirmation.email— adresse e-mail de l’utilisateur.operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - Si l’authentification utilisateur échoue, vous pouvez fournir 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002. - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
Exemple de webhook :
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": "[email protected]",
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": "[email protected]","type": "email"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Entre l'adresse e-mail
YC->>XL: Envoie une requête pour démarrer l'authentification par adresse e-mail
XL-->>U: Envoie un e-mail avec le code de confirmation
U->>YC: Entre le code de confirmation
YC->>XL: Envoie une requête pour finaliser l'authentification par adresse e-mail
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le code d'autorisation
YC->>XL: Envoie une demande de génération du JWT utilisateur
XL-->>YC: Renvoie le JWT de l'utilisateur et le jeton d'actualisation
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
- Le client affiche un formulaire d’authentification pour que l’utilisateur saisisse son adresse e-mail.
- L’utilisateur entre son adresse e-mail
- Le client envoie la requête
POSTStart auth by email au serveur Xsolla Login. La requête doit contenir les paramètres obligatoires suivants :- Paramètres de requête :
response_type— type d’attribution JWT ; utilisez la valeurcode;client_id— ID client OAuth 2.0 ;state— valeur utilisée pour une authentification utilisateur supplémentaire. Obligatoire pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètres de corps
email— adresse e-mail de l’utilisateur.
- Paramètres de requête :
- Le client affiche un champ pour que l’utilisateur saisisse le code de vérification.
- L’utilisateur entre le code de vérification reçu.
- Le client envoie la requête
POSTComplete auth by email au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
client_id— ID client OAuth 2.0 ; - Paramètres de corps :
code— code de confirmation,email— adresse e-mail de l’utilisateur,operation_id— ID de code de confirmation.
- Paramètre de requête
- 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_datadu JWT utilisateur. - 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
Exemple de webhook :
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": "[email protected]",
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": "[email protected]","type": "email"}'
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
Authentification via les réseaux sociaux
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
participant SN as Réseau social
U->>YC: Sélectionne le réseau social
YC->>XL: Envoie une demande d'authentification via un réseau social
XL->>SN: Redirige l'utilisateur vers la page de connexion du réseau social
SN-->>XL: Renvoie les données utilisateur du réseau social
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le JWT utilisateur
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
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 Login dans le Compte éditeur (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans le Compte éditeur. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte pour les jeux mobiles (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans le compte pour les jeux mobiles. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
Les données utilisateur sont passées dans l’en-tête Authorization sous forme d’un jeton de passerelle temporaire (un jeton serveur avec “request_type”: “gateway_token”).
Principaux champs du jeton de passerelle :
| Revendication | Type | Description |
|---|---|---|
| exp | Unix Timestamp | Date et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire. |
| iat | Unix Timestamp | Date et heure d’émission du JWT. Obligatoire. |
| iss | string | Service ayant signé le JWT : https://login.xsolla.com. Obligatoire. |
| request_type | string | Constante : gateway_request. Obligatoire. |
| xsolla_login_project_id | string (UUID) | ID de votre projet de connexion dans le Compte éditeur. Obligatoire. |
| string | Adresse e-mail utilisateur. | |
| sub | string (UUID) | ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire. |
| username | string | Nom d’utilisateur. |
| provider | string | Nom du réseau social utilisé pour l’authentification. Obligatoire. |
| id | string | ID utilisateur dans le réseau social. Obligatoire. |
| social_access_token | string | Jeton 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 à [email protected]. |
| partner_data | string | Donné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 à [email protected]. |
| Revendication | Type | Description |
|---|---|---|
| exp | Unix Timestamp | Date et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire. |
| iat | Unix Timestamp | Date et heure d’émission du JWT. Obligatoire. |
| iss | string | Service ayant signé le JWT : https://login.xsolla.com. Obligatoire. |
| request_type | string | Constante : gateway_request. Obligatoire. |
| xsolla_login_project_id | string (UUID) | ID de votre projet de connexion dans le compte. Obligatoire. |
| string | Adresse e-mail utilisateur. | |
| sub | string (UUID) | ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire. |
| username | string | Nom d’utilisateur. |
| provider | string | Nom du réseau social utilisé pour l’authentification. Obligatoire. |
| id | string | ID utilisateur dans le réseau social. Obligatoire. |
| social_access_token | string | Jeton 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 à [email protected]. |
| partner_data | string | Donné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 à [email protected]. |
Exemple de charge utile d’un jeton :
- json
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": "[email protected]",
9 "username": "Smith707",
10 "provider": "google",
11 "id": "123",
12}
Exemple de webhook à l’URL de connexion via les réseaux sociaux :
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 :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d'erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d'erreur.
- Dans le paramètre
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
participant SN as Réseau social
U->>YC: Sélectionne le réseau social
YC->>XL: Envoie une demande d'authentification via un réseau social
XL->>SN: Redirige l'utilisateur vers la page de connexion du réseau social
SN-->>XL: Renvoie les données utilisateur du réseau social
XL->>YS: Envoie un webhoook
alt Authentification réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie le code d'autorisation
YC->>XL: Envoie une demande de génération du JWT utilisateur
XL-->>YC: Renvoie le JWT de l'utilisateur et le jeton d'actualisation
YC-->>U: Termine le processus d'authentification
else Échec de l'authentification
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur d'authentification
YC-->>U: Affiche un message d'erreur
end
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 Login dans le Compte éditeur (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit contenir les paramètres obligatoires suivants :- Paramètres de corps :
response_type— type d’attribution JWT ; utilisez la valeurcode;client_id— ID client OAuth 2.0 ;state— valuer utilisée pour une authentification utilisateur supplémentaire. Requise pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans le Compte éditeur. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètres de corps :
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte pour les jeux mobiles (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit contenir les paramètres obligatoires suivants :- Paramètres de requête :
response_type— type d’attribution JWT ; utilisez la valeurcode;client_id— ID client OAuth 2.0 ;state— valuer utilisée pour une authentification utilisateur supplémentaire. Requise pour prévenir les attaques CSRF. Valeur renvoyée dans la réponse. Longueur autorisée : 1 à 8 caractères.
- Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans le compte pour les jeux mobiles. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètres de requête :
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
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 Login dans le compte (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 :
- Le client envoie la requête
POSTAuth via social network au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de chemin
provider_name— nom du réseau social connecté à Login dans votre compte. Il peut s’agir de :amazon,apple,xsolla,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.
- Paramètre de requête
- L’utilisateur se connecte à un réseau social.
- 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_datadu JWT de l’utilisateur.
Les données utilisateur sont passées dans l’en-tête Authorization sous forme d’un jeton de passerelle temporaire (un jeton serveur avec “request_type”: “gateway_token”).
Principaux champs du jeton de passerelle :
| Revendication | Type | Description |
|---|---|---|
| exp | Unix Timestamp | Date et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire. |
| iat | Unix Timestamp | Date et heure d’émission du JWT. Obligatoire. |
| iss | string | Service ayant signé le JWT : https://login.xsolla.com. Obligatoire. |
| request_type | string | Constante : gateway_request. Obligatoire. |
| xsolla_login_project_id | string (UUID) | ID de votre projet de connexion dans le Compte éditeur. Obligatoire. |
| string | Adresse e-mail utilisateur. | |
| sub | string (UUID) | ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire. |
| username | string | Nom d’utilisateur. |
| provider | string | Nom du réseau social utilisé pour l’authentification. Obligatoire. |
| id | string | ID utilisateur dans le réseau social. Obligatoire. |
| social_access_token | string | Jeton 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 à [email protected]. |
| partner_data | string | Donné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 à [email protected]. |
| Revendication | Type | Description |
|---|---|---|
| exp | Unix Timestamp | Date et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire. |
| iat | Unix Timestamp | Date et heure d’émission du JWT. Obligatoire. |
| iss | string | Service ayant signé le JWT : https://login.xsolla.com. Obligatoire. |
| request_type | string | Constante : gateway_request. Obligatoire. |
| xsolla_login_project_id | string (UUID) | ID de votre projet de connexion dans le compte. Obligatoire. |
| string | Adresse e-mail utilisateur. | |
| sub | string (UUID) | ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire. |
| username | string | Nom d’utilisateur. |
| provider | string | Nom du réseau social utilisé pour l’authentification. Obligatoire. |
| id | string | ID utilisateur dans le réseau social. Obligatoire. |
| social_access_token | string | Jeton 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 à [email protected]. |
| partner_data | string | Donné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 à [email protected]. |
Exemple de charge utile d’un jeton :
- json
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": "[email protected]",
9 "username": "Smith707",
10 "provider": "google",
11 "id": "123",
12}
Exemple de webhook à l’URL de connexion via les réseaux sociaux :
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 :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d'erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d'erreur.
- Dans le paramètre
Réinitialisation du mot de passe utilisateur
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant U as Utilisateur
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
U->>YC: Appuie sur le bouton de réinitialisation du mot de passe
YC->>XL: Envoie une demande de réinitialisation du mot de passe
XL-->>U: Envoie un e-mail de confirmation de réinitialisation du mot de passe
U->>XL: Appuie sur le lien de réinitialisation du mot de passe
XL-->>YC: Affiche la page du nouveau mot de passe
U->>YC: Entre le nouveau mot de passe
YC->>XL: Envoie une demande de confirmation de réinitialisation du mot de passe
XL->>YS: Envoie un webhoook
alt Réinitialisation du mot de passe réussie
YS-->>XL: Renvoie un code HTTP 2xx et un corps de réponse facultatif
XL-->>U: Confirme la réinitialisation du mot de passe
else Échec de la réinitialisation du mot de passe
YS-->>XL: Renvoie une erreur
XL-->>YC: Renvoie une erreur de réinitialisation du mot de passe
YC-->>U: Affiche un message d'erreur
end
- Le client envoie la requête
POSTReset password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le Compte éditeur ; - Paramètre de corps
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères.
- Paramètre de requête
- Le serveur Xsolla Login envoie à l’utilisateur un e-mail de confirmation de réinitialisation du mot de passe.
- 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.
- L’utilisateur saisit un nouveau mot de passe.
- Le serveur Xsolla Login envoie un webhook à l’URL de réinitialisation du mot de passe.
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client envoie la requête
POSTReset password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans le compte pour les jeux mobiles ; - Paramètre de corps
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères.
- Paramètre de requête
- Le serveur Xsolla Login envoie à l’utilisateur un e-mail de confirmation de réinitialisation du mot de passe.
- 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.
- L’utilisateur saisit un nouveau mot de passe.
- Le serveur Xsolla Login envoie un webhook à l’URL de réinitialisation du mot de passe.
- 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002; - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
- Le client envoie la requête
POSTReset password au serveur Xsolla Login. La requête doit inclure les paramètres obligatoires suivants :- Paramètre de requête
projectId— ID du projet de Login dans votre compte. - Paramètre de corps
username— nom d’utilisateur. Longueur autorisée : 3 à 255 caractères.
- Paramètre de requête
- Le serveur Xsolla Login envoie à l’utilisateur un e-mail de confirmation de réinitialisation du mot de passe.
- 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.
- L’utilisateur saisit un nouveau mot de passe.
- Le serveur Xsolla Login envoie un webhook à l’URL de réinitialisation du mot de passe.
- Si la réinitialisation du mot de passe échoue, vous pouvez fournir 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
erroravec les informations suivantes :- Dans le paramètre
code, spécifiez un code d’erreur, par exemple011-002. - Dans le paramètre
description, fournissez le texte du message d’erreur.
- Dans le paramètre
http
- http
- curl
1POST https://your.hostname/your_reset_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{
6 "username": "[email protected]",
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":"[email protected]","fields":{"password":"NewPa$$word1"}}'
Actualisation du jeton
%%{init: {'themeVariables': { 'noteBkgColor': 'transparent', 'noteBorderColor': 'transparent', 'labelBoxBkgColor': 'transparent', 'labelBoxBorderColor': '#8ADCEC', 'altSectionBkgColor': 'transparent' }, 'sequence': {'noteMargin': 50}}}%%
sequenceDiagram
participant YC as Votre client
participant XL as Serveur Xsolla Login
participant YS as Votre serveur
YC->>XL: Envoie une requête pour actualiser le jeton
XL->>YS: Envoie un webhoook
YS-->>XL: Renvoie un code HTTP 2xx avec un corps de réponse facultatif
opt Le corps de la réponse contient les données utilisateur
activate XL
note right of XL: Enregistre les attributs et ajoute des informations aux données utilisateur
deactivate XL
end
XL-->>YC: Renvoie un nouveau JWT et un nouveau jeton d'actualisation
- Lorsque le jeton d’accès expire, le client envoie la requête
POSTGenerate JWT au serveur Xsolla Login. Le corps de la requête doit inclure les paramètres suivants :grant_type— type de jeton JWT ; utilisez la valeurrefresh_token;client_id— ID client OAuth 2.0 ;refresh_token— jeton d’actualisation reçu en réponse à la requête d’autorisation utilisateur.
- Le serveur Xsolla Login traite les données utilisateur reçues du réseau social et envoie un webhook à l’URL du jeton d’actualisation. La réponse doit respecter 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_datadu JWT utilisateur.
- http
1POST https://your.hostname/your_refrsh_token_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}
Exemple de réponse à un webhook avec des attributs utilisateur :
- json
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 :
- json
1{
2 "user": {
3 "player_id": "12345678",
4 "email": "[email protected]"
5 },
6 "user_info": {
7 "username": "gamer123",
8 "user_first_name": "John",
9 "user_last_name": "Doe",
10 "gender": "male",
11 "birthday": "1990-05-15",
12 "country": "US",
13 "language": "en"
14 },
15 "subscription_status": "active",
16 "loyalty_level": "gold"
17
18}
Poursuivre la lecture
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entrée.