Compte multiplateforme
Comment ça marche
Glossaire
Vous avez accès aux types de projets de connexion suivants dans le Compte éditeur :
- Projet de connexion standard — projet de connexion utilisé pour stocker les comptes principaux.
- Projet de connexion fantôme — projet de connexion utilisé pour stocker les comptes de plateforme.
Le compte principal est un type de compte créé dans un projet de connexion standard et lié à des comptes de plateforme. Le compte principal est utilisé pour identifier le joueur sur différentes plateformes.
Le compte de plateforme est un type de compte qui est créé dans un projet de connexion fantôme et connecté à une plateforme de publication définie. Le compte de plateforme ne peut pas être lié à un autre compte de plateforme. Vous ne pouvez pas non plus délier les comptes d’un compte principal.
La plateforme de publication est une plateforme de jeu utilisée pour la distribution de jeux (par exemple Steam, PlayStation, Xbox, etc.).
Le compte multiplateforme est un compte dont les comptes de plateforme sont liés au compte principal.
Chaque compte utilisateur possédant des jeux sur une plateforme donnée doit être associé à un compte de plateforme dans un projet de connexion fantôme. Par exemple, si l’utilisateur possède un compte avec des jeux sur les plateformes Xbox et PlayStation, les comptes de plateforme du projet de connexion fantôme doivent être liés aux comptes de plateforme Xbox et PlayStation correspondants.
À l'aide d'un compte multiplateforme
Le compte multiplateforme vous permet de :
- avoir un compte de jeu sur différentes plateformes
- obtenir la liste des amis d’un compte social à partir d’un compte de plateforme
Si les comptes principal et de plateforme sont liés :
- L’utilisateur s’authentifie sur une plateforme.
- Le serveur Xsolla Login envoie un jeton de compte principal à l’utilisateur.
- Le serveur Xsolla Login authentifie l’utilisateur du compte principal.
Lors de l’utilisation du compte multiplateforme, l’ID utilisateur dans un jeton sera le même que l’ID de compte principal. L’ID utilisateur se trouve dans JWT > revendication sub
.
Flux de liaison de comptes
Si l’utilisateur possède un compte principal, il peut y lier un compte de plateforme lors de l’authentification sur une plateforme. Le flux de liaison est le suivant :- Le joueur se connecte dans le jeu sur la plateforme de la console pour la première fois.
- L’interface du jeu affiche un message proposant l’utilisateur de lier le compte de la plateforme à son compte principal.
- L’utilisateur lance l’application et s’authentifie dans son compte principal.
- L’application envoie la requête
Create code for linking accounts au serveur Xsolla Login. - L’interface de l’application affiche à l’utilisateur un code pour la liaison des comptes.
- L’utilisateur revient à la version console du jeu et saisit le code.
- Le serveur de jeu envoie la requête
Link accounts by code au serveur Xsolla Login. - La console du jeu affiche le message de confirmation.
Qui peut l'utiliser
Les partenaires qui ont déjà intégré Login et qui possèdent un compte sur une plateforme de publication.
Comment configurer
Pour intégrer un compte multiplateforme, vous aurez besoin des paramètres suivants issus de Compte éditeur :
main_project_id
— ID de projet de connexion standard au format UUID. Par exemple :f6c5011a-715e-4e5e-b7b1-a4812d85b8c8
;shadow_project_id
— ID de projet de connexion fantôme au format UUID. Ce projet sera utilisé comme projet de connexion fantôme. Créez un projet de connexion fantôme et spécifiezpublisher_project_id
dans les paramètres du projet de connexion.shadow_project_id
est l’ID du projet créé ;publisher_project_id
— ID de projet. Le paramètre est affiché dans Project settings > General settings > Project ID.
Envoyez les paramètres shadow_project_id
et publisher_project_id
à votre responsable de la réussite client pour obtenir les paramètres de client OAuth 2.0 suivants :
client_id
— ID client OAuth 2.0 ;client_secret
— clé secrète client OAuth 2.0.
L’algorithme d’intégration d’un compte multiplateforme est le suivant :
- Implémentez l’authentification utilisateur dans :
- Liez les comptes :
Authentification utilisateur dans le compte principal
Le compte principal est créé dans un projet de connexion avec une adressemain_project_id
. Vous pouvez utiliser soit le widget Login, soit Authentification utilisateur dans le compte de plateforme
Pour enregistrer et authentifier les utilisateurs via une plateforme, choisissez la méthode et suivez les instructions. Vous pouvez également combiner différentes méthodes. Par exemple, utilisez l’authentification silencieuse pour la plateforme Xbox et l’authentification parAuthentification par custom ID
Pour créer un compte de plateforme, utilisez l’appel
- les paramètres
publisher_project_id
oushadow_project_id
(le serveur Xsolla Login renvoie une erreur s’ils ne sont pas passés) ; - un jeton de serveur ;
- les informations sur le compte de plateforme de l’utilisateur dans le paramètre
social_profile
.
Si vous utilisez cet appel d’authentification, vous ne pourrez pas obtenir la liste des amis de l’utilisateur sur différentes plateformes. La liste des plateformes disponibles pour l’authentification n’est pas limitée.
Flux d’authentification :
- Le client du jeu envoie la requête d’authentification à un serveur de jeu lorsque l’utilisateur lance le jeu.
- Le serveur de jeu génère ou utilise le
custom ID déjà existant de l’utilisateur. - Le serveur de jeu envoie la requête
Auth by custom ID au serveur Xsolla Login en spécifiant la plateforme et l’identifiant de l’utilisateur sur celle-ci (paramètresplatform
etuser_id
). Si l’utilisateur avec le custom ID passé n’est pas trouvé, un nouvel utilisateur est créé. - Le serveur Xsolla Login envoie un jeton au serveur de jeu.
Exemple de requête :
http
- http
- curl
POST https://login.xsolla.com/api/users/login/server_custom_id?publisher_project_id=<publisher_project_id> HTTP/1.1
X-Server-Authorization: <server_token>
Content-Type: application/json
{
"server_custom_id": "secret_value",
"social_profile": {
"platform": "xbox",
"user_id": "123"
}
}
curl --request POST \
--url 'https://login.xsolla.com/api/users/login/server_custom_id?publisher_project_id=publisher_project_id' \
--header 'content-type: application/json' \
--header 'x-server-authorization: server_token' \
--data '{"server_custom_id":"secret_value","social_profile":{"platform":"xbox","user_id":"123"}}'
Exemple de réponse :
- http
HTTP/1.1 200 OK
Content-Type: application/json
{
"token": "<platform_user_token>"
}
Authentification silencieuse
Pour configurer l’authentification silencieuse, créez un projet de connexion fantôme et suivez les instructions. Utilisez les méthodes d’authentification silencieuse sur le serveur de jeu pour créer un compte de plateforme.Obtention du code de liaison
Pour obtenir un code de liaison :
- Utilisez l’appel
Create code for linking accounts . Passez à cet appel le jeton utilisateur que vous avez reçu lors de l’authentification dans le compte principal. - Affichez le code reçu à l’utilisateur.
Exemple de requête :
http
- http
- curl
POST https://login.xsolla.com/api/users/account/code HTTP/1.1
Authorization: Bearer <main_user_token>
curl --request POST \
--url https://login.xsolla.com/api/users/account/code \
--header 'authorization: main_user_token'
Exemple de réponse :
- http
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "123456"
}
Liaison des comptes
Pour lier un compte de plateforme au compte principal, utilisez l’appel code
avec la valeur du code de liaison que l’utilisateur a saisie sur la plateforme de la console.
Exemple de requête :
http
- http
- curl
POST https://login.xsolla.com/api/users/account/link HTTP/1.1
X-Server-Authorization: <server_token>
Content-Type: application/json
{
"code": "123456",
"platform": "xbox",
"user_id": "123",
"publisher_project_id": 44056
}
curl --request POST \
--url https://login.xsolla.com/api/users/account/link \
--header 'content-type: application/json' \
--header 'x-server-authorization: server_token' \
--data '{"code":"123456","platform":"xbox","publisher_project_id":44056,"user_id":"123"}'
Exemple de réponse :
- http
HTTP/1.1 204 No Content
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.