Login / Protocole OAuth 2.0
  Retour à la documentation

Login

Protocole OAuth 2.0

Présentation

Le produit Login prend en charge le protocole standard OAuth 2.0 pour l’enregistrement et l’authentification utilisateur. Le protocole d’autorisation standard OAuth 2.0 met l’accent sur la facilité de développement d’applications clientes et vous permet de renouveler les jetons d’accès sans la participation de l’utilisateur. Des informations détaillées sur le protocole OAuth 2.0 sont disponibles sur son site officiel. Le JWT utilisateur est utilisé comme jeton d’accès.

L’interaction entre votre client OAuth 2.0 et le serveur Xsolla Login est illustrée ci-dessous :

Pour configurer le protocole OAuth 2.0 :

  1. Connectez le produit Login.
  2. Configurez le stockage Xsolla, PlayFab ou Firebase.
  3. Connectez un client OAuth 2.0.

Connexion du client OAuth 2.0

  1. Ouvrez votre projet dans le Compte éditeur et accédez à la section Login.
  2. Dans le volet de l'option de connexion, cliquez sur Configure.
  3. Accédez au bloc Security et sélectionnez la section OAuth 2.0.
  1. Cliquez sur Add OAuth 2.0 client.
  1. Dans la fenêtre modale, spécifiez :
    • le nom du client ;
    • le ou les URI vers lesquels l'utilisateur est redirigé après une vérification du compte, une authentification ou une confirmation de la réinitialisation du mot de passe réussies ;
    • le type d'authentification : publique, confidentielle ou serveur.
Note
Pour plus d’informations sur les types d’authentification (types de clients), voir The OAuth 2.0 Authorization Framework et Confidential and Public Applications. Les types d’authentification serveur et confidentielle utilisent un client confidentiel, mais diffèrent dans la manière dont ils accordent l’accès à l’application (voir Application Grant Types pour plus de détails) :
  • pour l’authentification serveur : grant_type=client_credentials ;
  • pour l’authentification confidentielle et publique : grant_type=authorization_code ou grant_type=refresh_token.
Si vous utilisez l’intégration via Login API, les caractéristiques suivantes doivent être prises en compte lors du choix du type d’authentification :
  • Le client confidentiel nécessite l’utilisation de l’ID client et de la clé secrète lors de l’appel à la méthode Generate JWT pour obtenir ou mettre à jour un jeton d’accès.
  • Le client public nécessite uniquement l’utilisation de l’ID client.
  • L’appel à la méthode JWT auth by username and password n’est disponible que pour l’authentification publique.

  1. Cliquez sur Connect.

  1. Un ID client et une clé secrète seront générés, lesquels seront nécessaires pour configurer l'authentification OAuth 2.0 dans votre application.

  1. Dans la fenêtre de dialogue, copiez Client ID et Secret key à l'aide des boutons de copie.

Obtention des paramètres du client OAuth 2.0

Si vous n’avez pas copié l’ID client et la clé secrète lors de la connexion du client OAuth 2.0, vous devez procéder comme suit pour accéder à ces données :

  1. Ouvrez votre projet dans le Compte éditeur et accédez à la section Login.
  2. Dans le volet de l’option de connexion, cliquez sur Configure.
  3. Accédez au bloc Security et sélectionnez la section OAuth 2.0.
  4. Dans la ligne du client OAuth 2.0 requis :
    • Copiez le contenu du champ Client ID.
    • Cliquez sur Client key pour copier la clé secrète.

L’ID client et la clé secrète correspondent aux paramètres client_id et client_secret dans les méthodes Login API. Utilisez ces valeurs lorsque vous utilisez des clients OAuth 2.0.

Note
Lorsque vous implémentez l’authentification OAuth 2.0 dans votre application, nous vous recommandons d’utiliser le code des bibliothèques client. Cela vous aidera à protéger vos informations et les données de vos utilisateurs.

Intégration côté application

Les options d’intégration suivantes sont disponibles :

Lorsque vous interagissez avec Login API et le widget Login, le paramètre scope est utilisé. Il peut prendre les valeurs suivantes :

  • offline : pour rafraîchir le jeton d’accès. Passez scope=offline à la méthode d’enregistrement ou d’authentification.
  • email : pour demander l’adresse e-mail utilisateur lors d’une authentification via un réseau social. Si vous avez intégré le produit Login via Login API, passez scope=email à la méthode d’enregistrement ou d’authentification. Lors de l’intégration via le widget Login, configurez la collecte l’adresse e-mail utilisateur à l’aide des instructions Collecte d’adresses e-mail et de numéros de téléphone.

Intégration via le widget Login

Si vous avez configuré l’intégration via le widget Login, ajoutez les paramètres client_id, response_type, state et redirect_uri au code d’initialisation. Dans le paramètre redirect_uri, assurez-vous de spécifier la valeur qui a été définie lors de la connexion du client OAuth 2.0 dans le Compte éditeur. Vous pouvez également ajouter le paramètre scope.

Exemple de requête :

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: 'LOGIN_PROJECT_ID',
  preferredLocale: 'en_US',
  clientId: 'CLIENT_ID',
  responseType: 'code',
  state: 'CUSTOM_STATE',
  redirectUri: 'REDIRECT_URI',
  scope: 'SCOPE'
});
</script>

Intégration via Login API

Utilisez les méthodes API pour le protocole OAuth 2.0 pour enregistrer et authentifier les utilisateurs. Si vous avez déjà intégré des méthodes pour le standard JWT, remplacez-les par des appels aux méthodes OAuth 2.0.

Lors de l’appel aux méthodes d’authentification, échangez le paramètre code reçu contre un jeton d’accès.

Intégration via les SDK Xsolla

Les SDK Xsolla prennent en charge l’authentification basée sur le protocole OAuth 2.0. Pour configurer le client OAuth 2.0, choisissez le moteur de jeu ou la plateforme et suivez les instructions :

Obtention du jeton d'accès

Pour obtenir un jeton d’accès utilisateur, utilisez la méthode Generate JWT avec les valeurs de paramètres suivantes :

La réponse à la méthode API renverra les jetons suivants :

  • access_token — jeton d’accès. La période de validité par défaut est de 1 heure ;
  • refresh_token — jeton d’actualisation. La période de validité n’est pas limitée.

Exemple de requête :

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
curl --request POST \
  --url https://login.xsolla.com/api/oauth2/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=authorization_code \
  --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
  --data client_id=11 \
  --data redirect_uri=https://my-website.com/callback \
  --data code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik

Actualisation du jeton d'accès

Lorsque le jeton d’accès expire, utilisez la méthode Generate JWT pour l’actualiser avec le paramètre grant_type égal à refresh_token et à la dernière valeur du jeton d’actualisation (refresh_token) reçue.

La réponse à la méthode API renverra une nouvelle paire de jetons : le jeton d’accès access_token et le jeton d’actualisation refresh_token, qui peuvent ensuite être actualisés à nouveau.

Exemple de requête :

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
curl --request POST \
  --url https://login.xsolla.com/api/oauth2/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=refresh_token \
  --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
  --data client_id=11 \
  --data redirect_uri=https://my-website.com/callback \
  --data refresh_token=111dfgdfgdf
Note
Par défaut, le produit Login prend en charge un maximum de cinq sessions utilisateur simultanées. À chaque nouvelle authentification utilisateur, la paire de jetons access_token et refresh_token reçue par cet utilisateur avant les cinq dernières paires de jetons devient invalide. Pour modifier la limite du nombre de sessions utilisateur simultanées, contactez votre responsable de la réussite client ou envoyez un e-mail à csm@xsolla.com.
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 !