> ## 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 un 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 peut être accessible à partir de nombreux appareils et informations d'identification de connexion. Comme nous l'expliquons dans notre tutoriel [Notions de base et pratiques exemplaires de connexion](/fr-CA/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. Cela permet à votre joueur d'entrer dans le jeu, sans friction.

Mais une fois qu'un joueur s'investit dans votre jeu, vous devriez l'inviter à ajouter une méthode de connexion récupérable, ce 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 demeure pertinente et peut continuer d'être la principale connexion 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 propres à une plateforme ou s'ils lient un deuxième 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 le bas 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) sert à activer l'une ou l'autre (ou les deux) des options 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, adresse courriel, 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 à la clientèle peut déclencher :
  * [SendAccountRecoveryEmail](xref:titleid.playfabapi.com.admin.accountmanagement.sendaccountrecoveryemail) pour cette adresse courriel. Si un joueur entre une fausse adresse courriel, vous pouvez *quand même* utiliser PlayFab Game Manager pour mettre à jour l'adresse courriel du joueur. Il est toutefois important de vous assurer que vos représentants du service à la clientèle sont formés pour repérer les techniques courantes d'ingénierie sociale, afin qu'ils ne mettent à jour l'adresse courriel que du véritable propriétaire du compte.

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

1. D'abord, invitez l'utilisateur à se connecter à ce service (plus de détails dans [Notions de base et pratiques exemplaires de connexion](/fr-CA/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 de se lier de façon sécuritaire à ce compte sans connaître les informations d'identification de l'utilisateur dans 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. Assurez-vous de consulter la page **Add-on Marketplace** du service en question lors de la configuration de votre titre.
</Note>

### Pratique exemplaire

Utilisez une connexion anonyme pour créer de nouveaux joueurs sans aucune friction. Après une phase de tutoriel, encouragez doucement 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 (au moyen d'appels d'API ou de fonctions du SDK), puis appelez l'API PlayFab appropriée pour lier le compte du joueur dans 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) -->.

### Pratique exemplaire

* 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 COPPA; si cette exigence s'applique à votre titre, assurez-vous de consulter votre conseiller juridique pour confirmer votre conformité).

* Si vous utilisez les informations d'identification PlayFab ou appelez directement une API tierce, vous devriez effacer les 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 permettant d'identifier une personne ou information sécurisée 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 tout est correctement configuré, un joueur peut jouer au jeu sur n'importe quel appareil, dé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érents) 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 deuxième appareil n'est *pas* lié à un compte. Ce processus rendra orphelin tout compte dont le seul mécanisme de connexion est l'ID du deuxième appareil, ce qui le rendra irrécupérable. Cependant, PlayFab offre des options permettant de détecter ce cas de façon sécuritaire et d'avertir l'utilisateur.
* Toute l'activité de ce scénario a lieu sur **Device2** : pour commencer, le flux de connexion de l'utilisateur pour le deuxième appareil doit être *inversé*. Vous devez offrir à l'utilisateur l'option de se connecter au moyen d'un mécanisme récupérable, et *ne pas* le connecter automatiquement avec l'ID d'appareil.

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

Le flux pour les diverses conditions est donc le suivant. Notez que dans tous les cas, il n'y a 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 la connexion au compte du joueur sur **Device2** (à l'aide des informations d'identification du compte récupérable), effectuez un appel à [GetPlayerCombinedInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo).
  * Pour chaque type d'appareil renvoyé dans ces informations, l'ID de l'appareil connecté le plus récemment est renvoyé dans [result.InfoResultPayload.AccountInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo#getplayercombinedinforesultpayload).

Puisque **Device2** n'a pas encore été lié à ce compte de joueur, l'ID d'appareil pertinent (**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 tenter de le lier.

* Appelez l'API **LinkAndroidDeviceID**, **LinkIOSDeviceID** ou une autre API propre à l'appareil appropriée.
* Si l'appel réussit, vous avez terminé; 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 le message **Voulez-vous lier cet appareil à ce compte**.
* Assurez-vous d'indiquer que l'autre compte pourrait être *perdu* s'il continue.
* Si le joueur accepte cet avertissement, renvoyez la demande de liaison avec la propriété **ForceLink** définie à **True**.
* Cela dissociera l'**ID de Device2** de l'ancien compte, ce qui pourrait rendre ce compte orphelin si aucun autre mécanisme de connexion n'y est lié, et le liera au nouveau compte.

### Pratique exemplaire

Utilisez CloudScript ou un événement PlayStream pour consigner les informations sur les comptes abandonnés à un endroit où vos représentants du service à la clientèle pourraient les récupérer, si le joueur a fait une erreur.

<Note>
  Même une mesure aussi simple que l'écriture du PlayFabId dans un fichier journal infonuagique peut sauver le compte d'un joueur dévoué.
</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 maintenant sur le même compte, et les deux appareils peuvent utiliser la connexion sans friction de façon sécuritaire.

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

Ce scénario est très semblable à la situation ci-dessus, sauf 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 après coup. Les étapes sont presque identiques à la condition ci-dessus, mais 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). Encore une fois, déterminez si l'ID d'appareil correspond à l'ID d'appareil lié, au moyen des informations renvoyées dans [result.InfoResultPayload.AccountInfo](xref:titleid.playfabapi.com.client.accountmanagement.getplayercombinedinfo#getplayercombinedinforesultpayload).

Puisque l'appareil ne s'est jamais connecté au compte, l'ID d'appareil pertinent (**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 d'appareil n'est pas lié au compte du joueur.

Puisque l'appareil n'est pas lié à ce compte, nous pouvons tenter de le lier. Appelez l'API **LinkAndroidDeviceID**, **LinkIOSDeviceID** ou une autre API propre à l'appareil appropriée.

Si l'appel réussit, vous avez terminé; reprenez le jeu normalement.

Mais encore une fois, 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 le message **Voulez-vous lier cet appareil à ce compte**.

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

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

**Pratique exemplaire** :

Utilisez CloudScript ou un événement PlayStream pour consigner les informations sur les comptes abandonnés à un endroit où vos représentants du service à la clientèle pourraient les récupérer si le joueur a fait une erreur. Même une mesure aussi simple que l'écriture du PlayFabId dans un fichier journal infonuagique peut sauver le compte d'un joueur dévoué.

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

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

## Autres pratiques exemplaires

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

API de connexion sans friction : vos connexions sans friction ont toutes un paramètre de demande 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é selon les lignes directrices suivantes :

**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 doté d'une capacité de connexion sans friction, cette scène devrait comprendre un bouton **Jouer maintenant**, ainsi que des boutons permettant au joueur de se connecter à un compte existant au moyen de Facebook, Twitch, Google ou d'autres options de connexion récupérable. Le bouton **Jouer maintenant** devrait activer la connexion sans friction avec **CreateAccount=true**.

* **Déconnexion** : offrez un bouton **Se déconnecter** qui ramène à 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 de lier l'appareil à ce compte.

Grâce à ces suggestions, vous pouvez éviter *la plupart* des scénarios maladroits où l'on demande aux utilisateurs d'abandonner un compte lors de la liaison de plusieurs appareils au même compte.


## Related topics

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