https://login.xsolla.com/api
Cette section décrit les appels API pour interagir avec Login. Configurez votre projet de connexion dans le Compte éditeur avant d'envoyer des requêtes.
The full list of IP addresses that login.xsolla.com may use:
Vous avez accès aux types de projets de connexion suivants dans le Compte éditeur :
Pour plus d'informations, voir la fonctionnalité Compte multiplateforme.
Il s'agit des restrictions appliquées par l'API Xsolla à la fréquence d'accès par un utilisateur au cours d'une période définie.
Il s'agit d'un projet de connexion utilisé pour stocker les comptes principaux.
Il s'agit d'un projet de connexion utilisé pour stocker les comptes de plateformes.
Il s'agit d'un type de compte créé dans un projet de connexion standard et lié aux comptes des plateformes. Le compte principal est utilisé pour identifier le joueur sur différentes plateformes.
Il s'agit d'un type de compte créé dans un projet de connexion fantôme et associé à une plateforme de publication spécifique. Le compte de plateforme ne peut pas être lié à un autre compte de plateforme. De même, vous ne pouvez pas dissocier les comptes d'un compte principal.
Il s'agit d'une plateforme de jeu utilisée pour la distribution des jeux (par exemple Steam, PlayStation, Xbox, etc.).
Login API prend en charge les types de jetons suivants :
Le schéma d'authentification permet de déterminer si un appel API est effectué côté client ou côté serveur :
Authorization
header: Bearer <user_JWT>
header,
where <user_JWT>
— is the user token.X-SERVER-AUTHORIZATION: <server_JWT>
, where
<server_JWT>
— is the server token.Pour obtenir le jeton, envoyez l'une des requêtes suivantes :
Après l'authentification JWT, l'utilisateur est redirigé vers l'URL de rappel
avec le jeton inclus dans le paramètre de la requête : <Callback URL>?token=<User token (JWT)>
.
Après l'authentification basée sur le protocole OAuth 2.0, envoyez la requête
Générer un JWT au serveur Xsolla Login pour échanger le paramètre code
reçu contre un
jeton utilisateur (access_token
).
Pour obtenir un jeton de serveur :
Côté client de votre application, implémentez une méthode pour obtenir le JWT du serveur en utilisant l'appel Générer une API JWT. La requête doit contenir les paramètres suivants :
grant_type
est le type de JWT obtenu, passez la valeur client_credentials
.client_secret
est la clé secrète obtenue lors de la configuration du client
OAuth 2.0 du serveur.client_id
est l'ID client obtenu lors de la configuration du client OAuth 2.0
du serveur.Pour éviter de surcharger le système Xsolla et prévenir les pics soudains de
trafic entrant, Xsolla limite le nombre de requêtes reçues par l'API Xsolla au
cours d'une période donnée. Si la limite est dépassée, l'API Xsolla renvoie une
réponse HTTP avec le code d'état 429
.
Rate limits vary by method, IP-address, authentication scheme, and other factors.
Rate limits for server-side methods are applied to methods with server-side
authentication — methods that are called with the X-SERVER-AUTHORIZATION:
<server_JWT>
header, where <server_JWT>
is the server
token.
Rate limits for client-side methods are applied to methods without
authentication or with client-side authentication — methods that are called
with the Authorization: Bearer <user_JWT>
header, where
<user_JWT>
is the user token.
Example of a method with server-side authentication: Example of a method with client-side authentication:
Les limites de fréquence pour les méthodes côté client restent inchangées et sont essentielles pour prévenir les attaques par force brute. En revanche, la fréquence maximale des requêtes pour les méthodes côté serveur est plus élevée que celle des méthodes côté client. Pour des recommandations sur la gestion des limites de fréquence, consultez la documentation .
Chaque jeton est au format JWT et contient une information précise dans une charge utile.
Le JWT utilisateur est un jeton obtenu à la suite d'une authentification ou d'un enregistrement. Il contient des informations sur l'utilisateur et des données sur l'appel d'authentification
L'obtention d'un jeton utilisateur via le protocole OAuth 2.0 nécessite un
client OAuth 2.0. Le jeton utilisateur est passé dans l'en-tête Authorization: Bearer <JWT>
.
Un jeton contient les revendications principales après l'authentification ou la confirmation de l'adresse e-mail. La présence de ces revendications ne dépend pas de la base de données utilisateur ni de l'appel d'authentification.
Revendication | Type | Obligatoire | Description |
exp |
Horodatage Unix | Oui | Date et heure d'expiration du jeton. Par défaut, le délai d'expiration est de 24 heures, mais il est modifiable pour chaque projet de connexion. |
iss |
string | Oui | Service qui a signé le jeton : https://login.xsolla.com . |
iat |
Horodatage Unix | Oui | Date et heure de la remise du jeton. |
sub |
string (UUID) | Oui | ID de l'utilisateur enregistré côté serveur Xsolla Login. |
groups |
array | Oui |
La liste des groupes dont fait partie l'utilisateur. Chaque groupe est écrit au format suivant :
Il ne peut y avoir qu'un seul groupe par défaut. Ce groupe comprend initialement tous les utilisateurs avant qu'ils ne soient répartis dans différents groupes. |
xsolla_login_project_id |
string (UUID) | Oui | ID du projet de connexion. |
type |
string |
Option d'authentification :
Il ne peut y avoir qu'un seul groupe par défaut. Ce groupe comprend initialement tous les utilisateurs avant qu'ils ne soient répartis dans différents groupes. |
|
avatar |
string | URL de l'avatar de l'utilisateur. | |
username |
string | Nom d'utilisateur. | |
publisher_id |
integer | ID du commerçant, propriétaire du projet de connexion. | |
email |
string | Adresse e-mail de l'utilisateur. | |
payload |
string | Informations supplémentaires passées dans le paramètre de charge utile lors de l'authentification. | |
promo_email_agreement |
boolean |
Valeurs possibles :
true .
Pour ajouter cette fonctionnalité au formulaire d'enregistrement du widget Login : |
|
connection_information |
string | Indique si l'utilisateur a confirmé ou non sa date de naissance. La confirmation se fait via le service okname. |
Revendications contenues dans le jeton après l'authentification si vous utilisez le stockage PlayFab.
Revendication | Type | Obligatoire | Description |
external_account_id |
string | Oui | ID PlayFab de l'utilisateur. |
session_ticket |
string | Oui |
Paramètre SessionTicket reçu lors d'une requête d'authentification ou lors des requêtes à PlayFab API. Le jeton contient cette revendication si vous authentifiez les utilisateurs via le protocole OAuth 2.0 et que vous passez la valeur |
entity_token |
string | Oui | Paramètre EntityToken.EntityToken. |
entity_type |
string | Oui | Paramètre EntityToken.Entity.Type. Unique valeur possible title_player_account . |
entity_id |
string | Oui | Paramètre EntityToken.Entity.Id. |
Revendications contenues dans le jeton après l'authentification si vous utilisez un stockage personnalisé.
Revendication | Type | Obligatoire | Description |
provider |
string | Oui | Nom du réseau social utilisé pour l'authentification. Si l'utilisateur s'authentifie par son nom d'utilisateur et son mot de passe, la revendication a la valeur xsolla . |
external_account_id |
string | ID de l'utilisateur sur votre serveur. | |
partner_data |
Data of any type returned by your server in the response body during authentication. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com | ||
social_access_token |
Access token of the social network through which the user was authenticated. To enable the transmission of this claim, contact your Customer Success Manager or email to csm@xsolla.com. |
Revendications contenues dans le jeton après l'authentification via un réseau social. La présence de ces revendications ne dépend pas de la base de données des utilisateurs.
Revendication | Type | Obligatoire | Description |
provider |
string | Oui | Nom du réseau social utilisé pour l'authentification. |
id |
string | Oui | ID utilisateur dans un réseau social. |
is_cross_auth |
boolean | Indique que la requête d'authentification silencieuse est en cours. | |
social_access_token |
string | Paramètre access_token du compte de réseau social utilisé pour l'authentification. Contactez votre gestionnaire de compte pour configurer cette fonctionnalité. |
|
picture |
string (URL) | Lien vers la photo de profil de l'utilisateur dans un réseau social. | |
birthday |
date (RFC3339) | Date de naissance de l'utilisateur dans un réseau social. | |
gender |
string | Genre de l'utilisateur dans un réseau social. | |
name |
string | Pseudo de l'utilisateur dans un réseau social. |
Revendications contenues dans le jeton après l'authentification OAuth 2.0.
Revendication | Type | Obligatoire | Description |
jti |
string | Oui | ID unique du jeton. |
Revendication contenue dans le jeton après l'authentification par numéro de téléphone.
Revendication | Type | Obligatoire | Description |
phone_number |
string | Oui | Numéro de téléphone de l'utilisateur utilisé pour l'authentification. Le format du numéro se compose de l'indicatif du pays, de l'indicatif régional et du numéro de ligne, sans aucun séparateur. |
Le jeton du serveur est passé dans l'en-tête X-SERVER-AUTHORIZATION
.
La charge utile du jeton contient des informations sur les ressources dont le client OAuth 2.0 est propriétaire. Le jeton a accès aux appels avec authentification côté serveur pour ces ressources.
Revendication | Type | Obligatoire | Description |
xsolla_login_project_id |
string (UUID) | Oui | ID du projet de connexion dont le client OAuth 2.0 est propriétaire. |
resources |
array | Oui |
Liste des ressources dont le client OAuth 2.0 est propriétaire. Types de ressources possibles :
Chaque groupe est écrit dans le format suivant :
|
jti |
string | Oui | ID unique du jeton. |
To validate the JWT, use the following Login API calls:
Remarque
Ne révélez votre clé secrète à personne. Si elle a été compromise, mettez-la à jour.
En cas d'erreur, le serveur Xsolla Login renvoie un objet JSON contenant les champs suivants :
Champ | Type | Description |
code | string | Code d'erreur du serveur Xsolla Login. |
description | string | Description de l'erreur. Le texte est toujours en anglais. N'utilisez pas ce texte en cas d'erreur, car la valeur peut changer à l'avenir. |
{
"error": {
"code": "000-000",
"description": "description"
}
}
---------------------------------------------------------------------------:| |
002-016 | accountID
parameter in the response body. | | 008-009 |
Policies and Agreements). | | 008-014 |
Okta integration not completed. | Contact the integration team through any messenger. | | 008-015 |SAML integration not completed. | Contact the integration team through any messenger. | | 008-016 |Firebase API key not set. | Add the API key to the settings in your Publisher Account (section Legal Terms > Policies and Agreements). | | 010-004 |Service temporarily unavailable. Try again later. | The user should try again later. | | 010-005 |Allowable number of requests exceeded. Try again later. | The user should try again later. | | 010-006 |If this social profile is unlinked, no authentication methods will be available. | The user should add another authentication method before unlinking the social network. | | 010-007 |Incorrect CAPTCHA input. Try again. | The user should complete the CAPTCHA again. | | 010-010 |Invalid confirmation code. | The user should verify the code and try again. | | 010-014 |Your code is expired. Return to the login page and log in again. | The user should log in again from the login page. | | 010-015 |Something went wrong during authentication with this social network. Try again later. | The user should try again later. | | 010-016 |This social account is already linked to another user. | The user should use a different social account. If they believe this is an error, they should contact the integration team through any messenger. | | 010-017 |Client authentication failed. Some request parameters are missing in request or have invalid values. | Verify the correctness of the request parameters being sent. | | 010-019 |Client authentication failed. Client with this client_id value does not exist. | Ensure that a client with the providedclient_id
exists. | | 010-020 |Client authentication failed. Parameter scope is invalid or malformed. | Ensure that the providedscope
parameter is correct. Refer to the instructions for detailed setup information. | | 010-021 |Client authentication failed. Parameter response_type is invalid or malformed. You should pass value of code parameter to response_type. | Ensure that the value of theresponse_type
parameter is set to"code"
. | | 010-022 |Client authentication failed. Parameter state is missing or its value has less than 8 characters. | Ensure that the state parameter is present and consists of at least 8 characters. | | 010-023 |Client authentication failed. Authorization code, authorization grant types, or refresh token are invalid or expired. Also this error is returned when the redirect_uri given in authorization grant type does not match the URI provided in access token request. | Ensure that the authorization code is valid and not expired, and that theredirect_uri
parameter contains an authorized URL. Refer to the instructions for detailed setup information. | | 010-026 |The resource owner or authorization server denied the request. | Ensure that you have sufficient permissions to access the resource. | | 010-030 |Cross social network is not enabled for this Login. | Ensure that cross-authentication is enabled for the authorization option. Refer to the instructions for detailed setup information. | | 010-031 |Social provider already exists. | The error occurs when attempting to connect a social network that is already enabled. | | 010-032 |Social network is not enabled for this Login. You can enable it in your Xsolla Publisher Account > Login Project > Social connections. | Ensure that the social network is enabled and configured in the authorization option settings in your Publisher Account (section Authorization via Social Networks). | | 010-033 |This call is temporary unavailable. | The user should try again later. | | 010-035 |Dependency service is unavailable | The user should try again later. | | 010-045 |Account with this social provider email address already exists. | The user should use a different social account for registration. | | 030-024 |Password recovery is not allowed. | The user should contact the game support team. | | 040-001 |Email address must be 254 characters or shorter. | The user should enter an email address containing no more than 254 characters. | | 040-002 |Username of the email address is invalid. Try another email address. | The user should enter a valid email address. | | 040-003 |Local part of the email address is too long. | The user should enter a different email address. | | 040-004 |Email address domain is invalid. Try another email address. | The user should contact Xsolla support. | | 040-005 |Email address should contain one @ character only. (E.g., username@example.com) | The user should enter an email with only one@
character. | | 040-006, 040-007, 040-008 |Email address domain is invalid. Try another email address. | The user should contact Xsolla support. | | 040-009 |Email address domain doesn’t exist. Try another email address. | The user should enter an email with an existing domain. | | 040-010 |Email address domain is not allowed. Try another email address. | The user should contact Xsolla support. | | 010-018 |Email address is invalid. Try another email address. | The user should enter a different email address. | | 300-003 |Allowable number of requests exceeded. Try again later. | The user should try again later. | | 300-005 |Failed to resend code. Try again later. | The user should try again later. | | 300-006 |Incorrect confirmation code. Check the code that you received and try again. | The user should verify and re- enter the confirmation code. | | 300-008 |You've exceeded the maximum number of attempts. Use the new code sent to your email or phone. | The user should use the new code sent to their email or phone. | | 003-007 |User account not confirmed. | The user should confirm their email address to activate the account. If they haven't received a confirmation email, they should check the spam folder. | | 003-025 |Error occurred while getting OAuth 2.0 access token. | The user should try a different authentication method. | | 003-040 |Unauthorized user. | The user should log in again. | | 003-033 |Mismatch project type. | Ensure that shadow authentication is used for the authorization option. | | 2002-0001 |Duplicated attributes. | Make sure that the attribute being created has not been previously added to the user. |