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 :
- Connectez le produit Login.
- Configurez le stockage Xsolla, PlayFab ou Firebase.
- Connectez un client OAuth 2.0.
Connexion du client OAuth 2.0
- Ouvrez votre projet dans le Compte éditeur et accédez à la section Login.
- Dans le volet de l'option de connexion, cliquez sur Configure.
- Accédez au bloc Security et sélectionnez la section OAuth 2.0.
- Cliquez sur Add OAuth 2.0 client.
- 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.
- pour l’authentification serveur :
grant_type=client_credentials
; - pour l’authentification confidentielle et publique :
grant_type=authorization_code
ougrant_type=refresh_token
.
- 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.
- Cliquez sur Connect.
- 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.
- 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 :
- Ouvrez votre projet dans le Compte éditeur et accédez à la section Login.
- Dans le volet de l’option de connexion, cliquez sur Configure.
- Accédez au bloc Security et sélectionnez la section OAuth 2.0.
- 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.
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. Passezscope=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, passezscope=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 :
- html
<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 :
authorization_code
pour le paramètregrant_type
;offline
pour le paramètrescope
(requis pour le renouvellement ultérieur du jeton d’accès) ;client_id
— valeur de configuration du client OAuth 2.0 ;client_secret
— valeur de configuration du client OAuth 2.0 (non requis pour le client OAuth 2.0 public) ;redirect_uri
— valeur qui a été définie lors de la connexion du client OAuth 2.0 dans le Compte éditeur ;code
reçu après une authentification ou un enregistrement réussis de l’utilisateur dans l’application.
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 :
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 :
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
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.Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.