Login / Stockage personnalisé
  Retour à la documentation

Login

Stockage personnalisé

Si vous utilisez le stockage personnalisé, vous avez accès aux fonctionnalités suivantes :

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 :

  1. Le client envoie des requêtes au serveur Xsolla Login. Le format des requêtes est décrit dans les endpoints JWT et Password.
  2. Le serveur Xsolla Login envoie des requêtes à votre serveur. Suivez les instructions pour valider les requêtes.
  3. Le serveur Xsolla Login traite la réponse de votre serveur et renvoie le résultat au client.
  4. Le client traite la réponse.

En réponse à une requête du serveur, vous pouvez obtenir des informations sur l’utilisateur sous la forme d’une structure :

ParamètreTypeDescription
attr_type
stringDéfinition du niveau d’accès de l’utilisateur aux attributs de service :
  • client — Attribut modifiable par l’utilisateur. Les valeurs de ce type d’attribut sont saisies par l’utilisateur ou spécifiées selon la logique du jeu côté client. Par exemple, le nom et les statistiques du personnage, le niveau de difficulté du jeu, etc. (valeur par défaut)
  • server — Attribut en lecture seule. Les valeurs de ce type d’attribut sont saisies et modifiées côté serveur de votre application. Nous vous recommandons de les utiliser pour configurer les statistiques des personnages du jeu ou les paramètres utilisateur qui ne devraient pas changer régulièrement. Par exemple, les chances d’obtenir un bonus, les paramètres clés des personnages du jeu, les catégories d’utilisateurs, etc.
key
stringNom de l’attribut utilisé pour identifier l’attribut utilisateur. Il doit être unique pour chaque utilisateur.
Longueur maximale : 256 symboles. Vous pouvez utiliser des chiffres, des lettres latines, des traits d’union et des tirets bas.
permission
string or nullLe type d’accès aux attributs utilisateur affecte la liste des attributs renvoyés par les méthodes :
Valeurs possibles : public ou private (valeur par défaut).
value
stringValeur de l’attribut utilisateur.
Longueur maximale : 256 symboles.

Enregistrement utilisateur

  1. Le client envoie la requête Register new user au serveur Xsolla Login.
  2. Le serveur Xsolla Login envoie une requête à l'URL de nouvel utilisateur. La réponse doit être dans le format décrit dans ces instructions. Dans la réponse, vous pouvez spécifier une liste d'attributs utilisateur.

Exemple de réponse de l’URL de nouvel utilisateur :

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email": "john@gmail.com",
  "password": "123456"
}
curl --request POST \
  --url 'https://your.hostname/your_registration_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"john@gmail.com","password":"123456"}'

Exemple de réponse :

Copy
Full screen
Small screen
    {
        "attributes": [
          {
            "attr_type": "server",
            "key": "company",
            "permission": "private",
            "value": "facebook-promo"
          },
          {
            "attr_type": "server",
            "key": "custom-id",
            "permission": "private",
            "value": 48582
          }
        ]
    }
    
    1. Les données utilisateur sont enregistrées dans la base de données Xsolla tant que l'email est marqué comme non confirmé. L'utilisateur recevra un e-mail de confirmation de compte.
    2. Si vous avez intégré le widget Login, l'utilisateur sera redirigé vers une page affichant le message suivant : Please confirm your account following the instructions we sent to {email}.
    3. Si l'inscription de l'utilisateur échoue, fournissez un message d'erreur qui 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écifiez 011-002 ;
      • Dans le paramètre description, fournissez le texte du message d'erreur.
    Exemple d’objet avec un message d’erreur :
    Copy
    Full screen
    Small screen
      {
        "error": {
          "code": "011-002",
          "description": "<string>"
        }
      }
      

      Authentification par nom d'utilisateur et mot de passe

      1. Le client envoie la requête Auth by username and password au serveur Xsolla Login.
      2. Le serveur Xsolla Login envoie une requête à l'URL de vérification utilisateur. La réponse doit être dans le format décrit dans ces instructions.

      Exemple de réponse de l’URL de nouvel utilisateur :

      Copy
      Full screen
      Small screen

      http

      • http
      • curl
      POST https://your.hostname/your_authentication_uri HTTP/1.1
      Authorization: Bearer {JWT}
      Content-Type: application/json
      
      {
        "email": "john@gmail.com",
        "password": "123456"
      }
      
      curl --request POST \
        --url 'https://your.hostname/your_authentication_uri' \
        --header 'authorization: bearer_JWT' \
        --header 'content-type: application/json' \
        --data '{"email":"john@gmail.com","password":"123456"}'
      

      Exemple de réponse :

      Copy
      Full screen
      Small screen
        {
            "attributes": [
              {
                "attr_type": "server",
                "key": "company",
                "permission": "private",
                "value": "facebook-promo"
              },
              {
                "attr_type": "server",
                "key": "custom-id",
                "permission": "private",
                "value": 48582
              }
            ]
        }
        
        1. Le serveur Xsolla Login génère un JWT utilisateur.
        2. L'utilisateur est redirigé vers login_url avec le paramètre de requête token. Le paramètre token contient le JWT utilisateur.
        Note
        Un nouvel utilisateur est créé s’il n’y a aucune donnée utilisateur dans la base de données Xsolla.

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

        1. Le client ouvre un formulaire d'authentification pour que l'utilisateur puisse entrer son numéro de téléphone.
        2. L'utilisateur entre son numéro de téléphone.
        3. Le client envoie la requête Start auth by phone number au serveur Xsolla Login.
        4. Le client affiche un champ pour que l'utilisateur puisse entrer le code de vérification.
        5. L'utilisateur saisit le code de vérification reçu.
        6. Le client envoie la requête Complete auth by phone number au serveur Xsolla Login.
        7. 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 numéro de téléphone. La réponse doit être dans le format décrit dans ces instructions.

        Exemple de réponse de l’URL de nouvel utilisateur :

        Copy
        Full screen
        Small screen

        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 :

        Copy
        Full screen
        Small screen
          {
              "attributes": [
                {
                  "attr_type": "server",
                  "key": "company",
                  "permission": "private",
                  "value": "facebook-promo"
                },
                {
                  "attr_type": "server",
                  "key": "custom-id",
                  "permission": "private",
                  "value": 48582
                }
              ]
          }
          

          Authentification via les réseaux sociaux

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

          Flux d’authentification :

          1. Le client envoie la requête Auth via social network au serveur Xsolla Login.
          2. L’utilisateur se connecte à un réseau social.
          3. Le serveur Xsolla Login traite les données utilisateur reçues du réseau social et envoie une requête à l’URL de connexion via le réseau social. La réponse doit être dans le format décrit dans les instructions.

          La requête contient des données dans le jeton temporaire de l’en-tête Authorization: Bearer <JWT>. Le JWT utilisateur passé dans la requête contient les données suivantes :

          RevendicationTypeDescription
          expUnix TimestampDate et heure d’expiration du JWT. La durée de vie du JWT est de 7 minutes. Obligatoire.
          iatUnix TimestampDate et heure d’émission du JWT. Obligatoire.
          issstringService ayant signé le JWT : https://login.xsolla.com. Obligatoire.
          request_typestringConstante : gateway_request. Obligatoire.
          xsolla_login_project_idstring (UUID)ID de votre projet de connexion dans le Compte éditeur. Obligatoire.
          emailstringAdresse e-mail utilisateur.
          substring (UUID)ID utilisateur écrit sur le serveur Xsolla Login. Obligatoire.
          usernamestringNom d’utilisateur.
          providerstringNom du réseau social utilisé pour l’authentification. Obligatoire.
          idstringID utilisateur dans le réseau social. Obligatoire.
          Exemple de charge utile d’un jeton :
          Copy
          Full screen
          Small screen
          {
            "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 :

          Copy
          Full screen
          Small screen

          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 :

          Copy
          Full screen
          Small screen
            {
                "attributes": [
                  {
                    "attr_type": "server",
                    "key": "company",
                    "permission": "private",
                    "value": "facebook-promo"
                  },
                  {
                    "attr_type": "server",
                    "key": "custom-id",
                    "permission": "private",
                    "value": 48582
                  }
                ]
            }
            

            Réinitialisation du mot de passe utilisateur

            1. Le client envoie la requête Reset password au serveur Xsolla Login.
            2. Le serveur de connexion Xsolla envoie à l'utilisateur un e-mail de confirmation de réinitialisation du mot de passe.
            3. Après avoir confirmé la réinitialisation du mot de passe dans l'e-mail, l'utilisateur est redirigé vers la page où il peut saisir un nouveau mot de passe.
            4. L'utilisateur saisit le nouveau mot de passe.
            5. Le serveur Xsolla Login envoie une requête à l'URL de réinitialisation du mot de passe. La réponse doit avoir le format décrit dans ces instructions.

            Exemple de réponse de l’URL de nouvel utilisateur :

            Copy
            Full screen
            Small screen

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

            Préfère ne pas répondre

            Merci pour votre commentaire !

            Poursuivre la lecture

            Dernière mise à jour: 27 Février 2024

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

            Signaler un problème
            Nous améliorons continuellement notre contenu grâce à vos commentaires.
            Indiquez votre adresse e-mail pour un suivi
            Merci pour votre commentaire !