> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide de la liaison de comptes

> Liez un compte de joueur PlayFab à plusieurs appareils et méthodes de connexion, en ajoutant des connexions récupérables comme le nom d'utilisateur, Facebook ou Google aux comptes anonymes.

Ce démarrage rapide de la liaison de comptes montre comment lier un compte à plusieurs appareils et mécanismes de connexion.

Un même compte PlayFab est accessible à partir de nombreux appareils et informations d'identification de connexion. Comme nous l'expliquons dans notre tutoriel [Notions de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices), il existe deux formes d'authentification des utilisateurs :

1. **Anonyme**
2. **Récupérable**

## Ajout d'une connexion récupérable à un compte anonyme existant

Il est très courant que votre première connexion soit anonyme. Elle permet à votre joueur d'entrer dans le jeu sans aucune friction.

Mais une fois qu'un joueur s'investit dans votre jeu, vous devez l'inviter à ajouter une méthode de connexion récupérable, qui rend son compte *récupérable* en cas de défaillance de l'appareil ou d'autres problèmes.

Cette section traite de l'ajout d'un mécanisme de connexion récupérable à un compte anonyme.

<Note>
  Une connexion anonyme reste pertinente et peut continuer à être la connexion principale sans friction du joueur. De nombreux joueurs n'utiliseront *de nouveau* ces options que s'ils tentent de récupérer leur compte, s'ils utilisent des fonctionnalités spécifiques à une plateforme ou s'ils lient un second appareil anonyme.
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/3hg2JQs0m7qmDqay/images/playfab/identity/player-identity/tutorials/playfab-anonymous-login-and-recoverable-login.png?fit=max&auto=format&n=3hg2JQs0m7qmDqay&q=85&s=33569b13f8e303cf4cf96fa2673a975a" alt="Connexion anonyme PlayFab et mécanisme de connexion récupérable" width="866" height="802" data-path="images/playfab/identity/player-identity/tutorials/playfab-anonymous-login-and-recoverable-login.png" />

Ce tutoriel porte sur la partie inférieure de l'image précédente, avec les cellules : **AddUsernamePassword**, **LinkWithFacebook** ou **LinkWithGoogle**. Elles représentent quelques-unes des nombreuses options disponibles pour les mécanismes de connexion récupérable.

* [AddUsernamePassword](xref:titleid.playfabapi.com.client.accountmanagement.addusernamepassword) permet d'activer l'une ou les deux méthodes suivantes : [LoginWithPlayFab](xref:titleid.playfabapi.com.client.authentication.loginwithplayfab) et [LoginWithEmailAddress](xref:titleid.playfabapi.com.client.authentication.loginwithemailaddress). Ces options stockent les informations d'identification nom d'utilisateur/e-mail/mot de passe directement auprès de PlayFab. Pour qu'un joueur puisse récupérer son compte, votre jeu, votre site web ou votre service client peut déclencher :
  * [SendAccountRecoveryEmail](xref:titleid.playfabapi.com.admin.accountmanagement.sendaccountrecoveryemail) pour cette adresse e-mail. Si un joueur saisit une adresse e-mail fictive, vous pouvez *tout de même* utiliser PlayFab Game Manager pour mettre à jour l'adresse e-mail du joueur. Il est toutefois important de vous assurer que vos représentants du service client sont formés pour repérer les techniques courantes d'ingénierie sociale, afin qu'ils ne mettent à jour l'adresse e-mail que du véritable propriétaire du compte.

Les mécanismes de connexion récupérable tiers impliquent tous d'inviter l'utilisateur à se connecter via un SDK approprié ou un appel d'API tiers. La liaison de ce compte à PlayFab suit généralement le même modèle :

1. Tout d'abord, invitez l'utilisateur à se connecter à ce service (plus de détails dans [Notions de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices)).
2. Une fois la connexion effectuée, ces services fournissent un type de jeton, qui peut être transmis à PlayFab.
3. Cela permet à PlayFab d'établir une liaison sécurisée avec ce compte sans connaître les informations d'identification de l'utilisateur pour ce service.

<Note>
  Certains services exigent que PlayFab dispose d'informations supplémentaires, comme un ID d'application, afin d'effectuer l'appel d'authentification à ce service pour votre jeu. Veillez à consulter la page **Add-on Marketplace** du service en question lors de la configuration de votre titre.
</Note>

### Bonne pratique

Utilisez une connexion anonyme pour créer de nouveaux joueurs sans aucune friction. Après une phase de tutoriel, encouragez délicatement les joueurs à lier à leur compte les informations d'identification récupérables de votre choix.

Si vous utilisez un système d'authentification tiers, récupérez le jeton approprié auprès de ce service (via des appels d'API ou des fonctions du SDK), puis appelez l'API PlayFab appropriée pour lier le compte du joueur sur ce service à son compte PlayFab : [LinkFacebookAccount](xref:titleid.playfabapi.com.client.accountmanagement.linkfacebookaccount), [LinkGameCenterAccount](xref:titleid.playfabapi.com.client.accountmanagement.linkgamecenteraccount), [LinkGoogleAccount](xref:titleid.playfabapi.com.client.accountmanagement.linkgoogleaccount), [LinkKongregate](xref:titleid.playfabapi.com.client.accountmanagement.linkkongregate), [LinkSteamAccount](xref:titleid.playfabapi.com.client.accountmanagement.linksteamaccount), [LinkTwitch](xref:titleid.playfabapi.com.client.accountmanagement.linktwitch), `LinkWindowsHello`\<!-- [LinkWindowsHello](xref:titleid.playfabapi.com.client.accountmanagement.linkwindowshello) -->.

### Bonne pratique

* Pour protéger la vie privée des utilisateurs, n'enregistrez et ne stockez *aucune* information d'identification des utilisateurs (il s'agit également de l'une des nombreuses étapes requises pour la conformité à la loi COPPA ; si cette conformité est une exigence pour votre titre, veillez à consulter votre conseiller juridique pour la confirmer).

* Si vous utilisez les informations d'identification PlayFab ou appelez directement une API tierce, vous devez effacer leurs informations de connexion de la mémoire dès que possible. En général, les SDK tiers s'en chargent pour vous.

* Ne conservez aucune information identifiable ou sensible en mémoire plus longtemps que nécessaire, et ne l'enregistrez pas dans un fichier ou un emplacement distant. Les API PlayFab sont conçues pour n'utiliser que le minimum d'informations requises.

## Ajout de nouveaux appareils à un compte récupérable existant

PlayFab permet à plusieurs connexions et appareils d'accéder au même compte. Lorsque la configuration est correcte, un joueur peut jouer au jeu sur n'importe quel appareil, poser cet appareil, prendre un nouvel appareil (même d'un type, d'une marque, d'une plateforme ou d'un système d'exploitation différent) et reprendre la même partie, avec toutes ses données intactes.

### Exigence

Le joueur doit posséder deux appareils :

* **Device1** : configuré avec un compte et des informations d'identification récupérables déjà correctement configurées. Idéalement, le second appareil ne doit *pas* être lié à un compte. Ce processus rendra orphelin tout compte dont le seul mécanisme de connexion est l'ID du second appareil, le rendant irrécupérable. Cependant, PlayFab propose des options pour détecter ce cas en toute sécurité et en avertir l'utilisateur.
* Toutes les activités de ce scénario se déroulent sur **Device2** : pour commencer, le flux de connexion de l'utilisateur pour le second appareil doit être *inversé*. Vous devez proposer à l'utilisateur une option de connexion via un mécanisme récupérable, et *ne pas* le connecter automatiquement avec l'ID de l'appareil.

Si vous omettez cette étape, l'expérience du joueur sera maladroite : il sera averti du risque de perdre un compte qu'il n'a jamais eu l'intention de créer.

Le flux pour les différentes conditions est donc le suivant. Notez que dans tous les cas, il n'existe qu'*un seul* compte de joueur, auquel un compte récupérable est lié.

**État de Device1** : l'**ID d'appareil** est lié au compte du joueur.
**État de Device2** : l'**ID d'appareil** n'est *pas* lié au compte du joueur.

* Après vous être connecté au compte du joueur sur **Device2** (à l'aide des informations d'identification du compte récupérable), appelez [GetPlayerCombinedInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo).
  * Pour chaque type d'appareil renvoyé dans ces informations, l'ID de l'appareil le plus récemment connecté est renvoyé dans [result.InfoResultPayload.AccountInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo#getplayercombinedinforesultpayload).

Comme **Device2** n'a pas encore été lié à ce compte de joueur, l'ID d'appareil concerné (**AccountInfo.IosDeviceInfo**, **AccountInfo.AndroidDeviceInfo**, etc.) ne correspondra pas à l'**ID de Device2**.

**État de Device1** : l'**ID d'appareil** est lié au compte du joueur.
**État de Device2** : connecté avec des informations d'identification récupérables, mais l'**ID d'appareil** n'est *pas* lié au compte du joueur.

Maintenant que nous avons vérifié que **Device2** n'est pas lié à ce compte, nous pouvons essayer de le lier.

* Appelez l'API **LinkAndroidDeviceID**, **LinkIOSDeviceID** ou tout autre appel d'API spécifique à l'appareil approprié.
* En cas de réussite, l'opération est terminée : reprenez le jeu normalement.
* Mais comme pour tout appel d'API, *soyez prêt à intercepter les erreurs*. Plus précisément, recherchez une erreur indiquant que l'appareil est déjà lié à un compte.
* Dans ce cas, affichez au joueur un message du type **Voulez-vous lier cet appareil à ce compte**.
* Veillez à indiquer que l'autre compte risque d'être *perdu* s'il continue.
* Si le joueur accepte cet avertissement, renvoyez la demande de liaison avec la propriété **ForceLink** définie sur **True**.
* Cela dissociera l'**ID de Device2** de l'ancien compte, rendant potentiellement ce compte orphelin si aucun autre mécanisme de connexion n'y est lié, et le liera au nouveau compte.

### Bonne pratique

Utilisez CloudScript ou un événement PlayStream pour enregistrer des informations sur les comptes abandonnés à un endroit où vos représentants du service client pourront les récupérer si le joueur a commis une erreur.

<Note>
  Même une opération aussi simple que l'écriture du PlayFabId dans un fichier journal dans le cloud peut sauver le compte d'un joueur assidu.
</Note>

**État de Device1** : l'**ID d'appareil** est lié au compte du joueur.
**État de Device2** : l'**ID d'appareil** est lié au compte du joueur.

À ce stade, les deux appareils jouent désormais sur le même compte, et les deux peuvent utiliser la connexion sans friction en toute sécurité.

## Liaison d'un ID d'appareil sans friction à un compte récupérable existant

Ce scénario est très similaire à la situation ci-dessus, à ceci près que le compte a été créé à l'aide d'informations d'identification récupérables.

Vous pouvez convertir un écran de connexion de jeu existant en connexion sans friction en liant une connexion anonyme a posteriori. Les étapes sont presque identiques à la condition ci-dessus, avec un *seul* appareil (qui correspond simplement à **Device2** dans le flux ci-dessus).

**État de l'appareil** : l'**ID d'appareil** n'est *pas* lié au compte du joueur.

Après avoir effectué une connexion récupérable avec l'appareil, appelez [GetPlayerCombinedInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo). Là encore, déterminez si l'ID de l'appareil correspond à l'ID d'appareil lié, à l'aide des informations renvoyées dans [result.InfoResultPayload.AccountInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo#getplayercombinedinforesultpayload).

Comme l'appareil ne s'est jamais connecté au compte, l'ID d'appareil concerné (**AccountInfo.IosDeviceInfo**, **AccountInfo.AndroidDeviceInfo**, etc.) ne correspondra pas à l'ID de l'appareil.

**État de l'appareil** : connecté avec des informations d'identification récupérables, mais l'ID de l'appareil n'est pas lié au compte du joueur.

Comme l'appareil n'est pas lié à ce compte, nous pouvons essayer de le lier. Appelez l'API **LinkAndroidDeviceID**, **LinkIOSDeviceID** ou tout autre appel d'API spécifique à l'appareil approprié.

En cas de réussite, l'opération est terminée : reprenez le jeu normalement.

Mais là encore, soyez prêt à intercepter les erreurs. Plus précisément, recherchez une erreur indiquant que l'appareil est déjà lié à un compte. Dans ce cas, affichez au joueur un message du type **Voulez-vous lier cet appareil à ce compte**.

Veillez à indiquer que l'autre compte risque d'être perdu s'il continue. Si le joueur accepte cet avertissement, renvoyez la demande de liaison avec la propriété **ForceLink** définie sur **True**.

Cela dissociera l'ID de l'appareil de l'ancien compte, rendant potentiellement ce compte orphelin si aucun autre mécanisme de connexion n'y est lié, et le liera au nouveau compte.

**Bonne pratique** :

Utilisez CloudScript ou un événement PlayStream pour enregistrer des informations sur les comptes abandonnés à un endroit où vos représentants du service client pourront les récupérer si le joueur a commis une erreur. Même une opération aussi simple que l'écriture du PlayFabId dans un fichier journal dans le cloud peut sauver le compte d'un joueur assidu.

**État de l'appareil** : l'ID de l'appareil est lié au compte du joueur.

À ce stade, une connexion sans friction peut être utilisée avec l'appareil, à la place des informations d'identification récupérables.

## Autres bonnes pratiques

Les étapes ci-dessus impliquent d'inviter l'utilisateur avant la connexion. La connexion sans friction consiste à se connecter *sans* demander d'abord l'avis du joueur. Vous pouvez trouver un juste milieu idéal grâce aux suggestions suivantes :

API de connexion sans friction : vos connexions sans friction comportent toutes un paramètre de requête appelé **CreateAccount**.

Exemples :

* [**AndroidRequest**](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)**.CreateAccount**
* [**IosRequest**](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid)**.CreateAccount**. Sélectionnez **true** ou **false** pour cette propriété en suivant les recommandations ci-dessous :

**Au démarrage** :

* Dans votre scène de connexion, votre jeu peut immédiatement tenter une connexion sans friction avec **CreateAccount=false**. Si elle réussit, ce joueur s'est déjà connecté au jeu avec cet appareil, et il peut passer directement à la scène de jeu en toute sécurité. Interceptez le rappel d'erreur de cet appel et faites-lui afficher les options de première connexion.

* **Scène de première connexion** : pour tout appareil disposant d'une fonctionnalité de connexion sans friction, cette scène doit inclure un bouton **Jouer maintenant**, ainsi que des boutons permettant au joueur de se connecter à un compte existant via Facebook, Twitch, Google ou d'autres options de connexion récupérable. Le bouton **Jouer maintenant** doit activer la connexion sans friction avec **CreateAccount=true**.

* **Déconnexion** : fournissez un bouton **Se déconnecter** qui renvoie à votre scène de première connexion, mais qui n'active *pas* automatiquement la connexion sans friction. Cela permet à l'utilisateur d'abandonner son compte lié à l'appareil en se connectant avec une option **récupérable**, puis en liant l'appareil à ce compte.

Grâce à ces suggestions, vous pouvez éviter *la plupart* des scénarios maladroits dans lesquels les utilisateurs sont invités à abandonner un compte lors de la liaison de plusieurs appareils au même compte.


## Related topics

- [Démarrage rapide Unity](/fr/services/playfab/sdks/unity3d/quickstart.md)
- [Stratégies de liaison de comptes pour PlayFab Game Saves](/fr/services/playfab/player-progression/game-saves/linking.md)
- [Démarrage rapide de CloudScript](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart.md)
- [Démarrage rapide de Party](/fr/services/playfab/multiplayer/networking/quickstart.md)
- [Démarrage rapide de Game Manager](/fr/services/playfab/live-service-management/gamemanager/quickstart.md)
