Login / Authentification unique
  Retour à la documentation

Login

Authentification unique

Comment ça marche

Si vous avez plusieurs services connectés avec un compte unique commun pour l’authentification utilisateur, utilisez l’authentification unique. Le site Web du jeu fonctionne comme un service. Il permet à l’utilisateur d’entrer ses informations d’identification une seule fois. Ensuite, lorsqu’il ouvrira l’un des services connectés, l’utilisateur sera déjà authentifié.

Flux d'interaction

  1. L'utilisateur non authentifié ouvre l'un des services.
  2. Votre client envoie la requête Check user authentication au serveur Xsolla Login et obtient l'erreur 401.
  3. Votre client ouvre le formulaire d'authentification utilisateur (widget Login ou votre interface de connexion).
  4. L'utilisateur s'authentifie par nom d'utilisateur et mot de passe ou via un réseau social.

  1. Votre client authentifie l'utilisateur dans votre projet de connexion :
    • Les requêtes suivantes sont utilisées lors de l'intégration de Login via appels API :
      • authentification par nom d'utilisateur et mot de passe (JWT et OAuth 2.0) ;
      • authentification via les réseaux sociaux (JWT et OAuth 2.0).
    • Le protocole OAuth 2.0 est utilisé lors de l'intégration de Login via le widget.
    Les données de session de l'utilisateur sont sauvegardées sur le serveur Xsolla Login. Le serveur envoie login_uri qui contient redirect_uri avec code dans le paramètre de requête.

  1. Votre client redirige l'utilisateur vers redirect_uri.
  2. Votre serveur envoie la requête Generate JWT pour échanger le code reçu contre un JWT. L'utilisateur est authentifié sur le service.
  3. L'utilisateur ouvre un autre service.
  4. Votre client envoie la requête Check user authentication au serveur Xsolla Login et reçoit login_uri qui contient redirect_uri avec code dans le paramètre de requête.
  5. Votre serveur envoie la requête Generate JWT pour échanger le message reçu code contre un JWT. L'utilisateur est authentifié sur le deuxième service.

Différenciation des droits d'accès pour les différents services

Pour différencier les droits d’accès à un compte utilisateur pour différents services, utilisez des valeurs spéciales du paramètre scope (par exemple scope=playfab) dans différents clients OAuth 2.0.

Qui peut l'utiliser

Les partenaires qui ont déjà intégré Login et qui utilisent Xsolla, Firebase ou PlayFab base de données.

Comment configurer

Pour connecter l’authentification unique :

  1. Connectez le protocole OAuth 2.0.
  2. Implémentez la fonction de rappel à la requête d’obtention de la session utilisateur.

Connexion du protocole OAuth 2.0

Suivez les instructions pour connecter le protocole OAuth 2.0. Vous pouvez utiliser un client OAuth 2.0 pour tous les services ou créer un client OAuth 2.0 distinct pour chaque service.

Appel d'obtention de la session utilisateur

Implémentez la fonction de rappel à la requête Check user authentication lors de l’ouverture de votre service. La requête doit être exécutée avant d’ouvrir le formulaire d’authentification utilisateur. Pour l’authentification, utilisez les paramètres client OAuth 2.0 du service spécifique dans lequel l’utilisateur veut s’authentifier.

Exemple de requête :

Copy
Full screen
Small screen

http

  • http
  • curl
GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
curl --request GET \
  --url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'

Exemple de réponse lorsque l’utilisateur est authentifié :

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "login_url": "<redirect_uri>?code=<code>"
}

Pour obtenir un JWT utilisateur :

  1. Votre client implémente et utilise la requête qui redirige l’utilisateur vers redirect_uri reçue.
  2. Votre serveur envoie la requête Generate JWT avec les sites code et grant_type=authorization_code reçus pour obtenir un JWT.

Exemple de réponse lorsque l’utilisateur n’est pas authentifié :

Copy
Full screen
Small screen
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": {
    "code": "003-040",
    "description": "User is unauthorized."
  }
}
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 !
Dernière mise à jour: 22 Janvier 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 !