Stockage personnalisé
Si vous utilisez le stockage personnalisé, vous avez accès aux fonctionnalités suivantes :
- enregistrement utilisateur
- authentification par nom d’utilisateur et mot de passe
- authentification sans mot de passe par numéro de téléphone
- authentification via les réseaux sociaux
- réinitialisation du mot de passe utilisateur
Flux d'interaction
Vous pouvez utiliser le widget Login ou votre application, qui utilise les appels Login API, comme client. Le flux d’interaction entre le client et le serveur Xsolla Login est le suivant :
- Le client envoie des requêtes au serveur Xsolla Login. Le format des requêtes est décrit dans les endpoints JWT et Password.
- Le serveur Xsolla Login envoie des requêtes à votre serveur. Suivez les instructions pour valider les requêtes.
- Le serveur Xsolla Login traite la réponse de votre serveur et renvoie le résultat au client.
- Le client traite la réponse.
- Sous forme de tout objet JSON.
- Sous forme d'un tableau d'objets avec les attributs utilisateur. Les objets doivent avoir la structure suivante :
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
- Le client envoie la requête
Register new user au serveur Xsolla Login. - Le serveur Xsolla Login envoie une requête à l'URL de nouvel utilisateur. La réponse doit être dans le format décrit dans ce flux d'intégration. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ
partner_data
du JWT de l'utilisateur.
http
- http
- curl
POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email":"j.smith@email.com",
"password":"123456",
"username":"j.smith@email.com"
}
curl --request POST \
--url 'https://your.hostname/your_registration_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Exemple de réponse avec les attributs utilisateur :
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemple de réponse avec un objet JSON :
- json
{ "region": "Asia",
"type": "new"
}
- 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. - 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 sera affiché 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 détails suivants :- Dans le paramètre
code
, spécifiez011-002
; - Dans le paramètre
description
, fournissez le texte du message d'erreur.
- Dans le paramètre
- json
{
"error": {
"code": "011-002",
"description": "<string>"
}
}
Authentification par nom d'utilisateur et mot de passe
- Le client envoie la requête
Auth by username and password au serveur Xsolla Login. - Le serveur Xsolla Login envoie une requête à l'URL de vérification de l'utilisateur. La réponse doit être dans le format décrit dans ce flux d'intégration. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ
partner_data
du JWT de l'utilisateur.
http
- http
- curl
POST https://your.hostname/your_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email":"j.smith@email.com",
"password":"123456",
"username":"j.smith@email.com"
}
curl --request POST \
--url 'https://your.hostname/your_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Exemple de réponse avec les attributs utilisateur :
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemple de réponse avec un objet JSON :
- json
{ "region": "Asia",
"type": "new"
}
- Le serveur Xsolla Login génère un JWT utilisateur.
- L'utilisateur est redirigé vers
login_url
avec le paramètre de requêtetoken
. Le paramètretoken
contient le JWT utilisateur.
Authentification sans mot de passe par numéro de téléphone
- Le client ouvre un formulaire d'authentification pour que l'utilisateur entre son numéro de téléphone.
- L'utilisateur saisit son numéro de téléphone.
- Le client envoie la requête
Start auth by phone number au serveur Xsolla Login. - Le client affiche un champ pour que l'utilisateur entre le code de vérification.
- L'utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
Complete auth by phone number au serveur Xsolla Login. - S'il s'agit de la première autorisation de l'utilisateur, le serveur Xsolla Login envoie la requête à l'URL de connexion sans mot de passe par téléphone. La réponse doit être dans le format décrit dans ce flux d'intégration. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ
partner_data
du JWT de l'utilisateur.
http
- http
- curl
POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"login": "+12025550140",
"type": "phone"
}
curl --request POST \
--url 'https://your.hostname/your_phone_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"login":"+12025550140","type":"phone"}'
Exemple de réponse avec les attributs utilisateur :
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemple de réponse avec un objet JSON :
- json
{ "region": "Asia",
"type": "new"
}
Authentification sans mot de passe par e-mail
- Le client ouvre un formulaire d'authentification pour que l'utilisateur entre son adresse e-mail.
- L'utilisateur saisit son adresse e-mail.
- Le client envoie la requête
Start auth by email au serveur Xsolla Login. - Le client affiche un champ pour que l'utilisateur puisse entrer le code de vérification.
- L'utilisateur saisit le code de vérification reçu.
- Le client envoie la requête
Complete auth by email au serveur Xsolla Login. - S'il s'agit de la première autorisation de l'utilisateur, le serveur Xsolla Login envoie la requête à l'URL de connexion sans mot de passe par e-mail. La réponse doit être dans le format décrit dans ce flux d'intégration. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur ou tout objet JSON nécessaire. L'objet JSON dans la réponse est enregistré dans le champ
partner_data
du JWT de l'utilisateur.
http
- http
- curl
POST https://your.hostname/your_email_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email": "user@mail.com",
"type": "email"
}
curl --request POST \
--url 'https://your.hostname/your_email_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email": "user@mail.com","type": "email"}'
Exemple de réponse avec les attributs utilisateur :
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemple de réponse avec un objet JSON :
- json
{ "region": "Asia",
"type": "new"
}
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 :
- Le client envoie la requête
Auth via social network au serveur Xsolla Login. - L’utilisateur se connecte à un réseau social.
- Le serveur Xsolla Login traite les données de l’utilisateur reçues du réseau social et envoie une requête à l’URL de connexion via les réseaux sociaux. La réponse doit être dans le format décrit dans le scénario. Dans la réponse, vous pouvez spécifier une liste d’attributs utilisateur ou tout objet JSON nécessaire. L’objet JSON dans la réponse est enregistré dans le champ
partner_data
du JWT de l’utilisateur.
Authorization: Bearer <JWT>
. Le JWT utilisateur passé dans la requête contient les données suivantes :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 à csm@xsolla.com. |
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 à csm@xsolla.com. |
- json
{
"exp": 1573635020,
"iat": 1573634600,
"iss": "https://login.xsolla.com",
"request_type": "gateway_request",
"xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
"sub": "00000000-0000-0000-0000-000000000000",
"email": "example@test.com",
"username": "Smith707",
"provider": "google",
"id": "123",
}
Exemple de réponse de l’URL de nouvel utilisateur :
http
- http
- curl
POST https://your.hostname/your_social_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{}
curl --request POST \
--url 'https://your.hostname/your_social_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json'
Exemple de réponse avec les attributs utilisateur :
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemple de réponse avec un objet JSON :
- json
{ "region": "Asia",
"type": "new"
}
Réinitialisation du mot de passe utilisateur
- Le client envoie la requête
Reset password au serveur Xsolla Login. - 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 dans l'e-mail, l'utilisateur est redirigé vers la page où il peut saisir un nouveau mot de passe.
- L'utilisateur saisit le nouveau mot de passe.
- Le serveur Xsolla Login envoie une requête à l'URL de réinitialisation du mot de passe.
Exemple de réponse de l’URL de nouvel utilisateur :
http
- http
- curl
POST https://your.hostname/your_reset_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"username": "john@gmail.com",
"fields": {
"password": "NewPa$$word1"
}
}
curl --request POST \
--url 'https://your.hostname/your_reset_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
Poursuivre la lecture
Liens utiles
Comment connecter le stockage personnaliséFaute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.