> ## 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.

# Authentification par connexion anonyme côté serveur

> Configurez la connexion anonyme PlayFab avec création de joueurs côté serveur à l'aide de l'authentification CustomID, afin de protéger les titres HTML5 et JavaScript contre les inscriptions non autorisées.

# Configuration de l'authentification PlayFab à l'aide de la connexion anonyme

Ce guide vous montre comment implémenter l'authentification PlayFab à l'aide des API de connexion anonyme avec une protection côté serveur, en se concentrant uniquement sur l'authentification CustomID avec HTML5/JavaScript.

## Vue d'ensemble

<Info>
  À compter du 30 juin 2025, la création de joueurs via les API anonymes sera désactivée pour tous les titres nouvellement créés.
</Info>

Pour renforcer la sécurité de la connexion anonyme, PlayFab a implémenté une fonctionnalité de sécurité essentielle qui sépare les capacités de création de joueurs entre les API côté client et les API côté serveur.

1. **Création de joueurs côté client désactivée** :
   * Pour les titres nouvellement créés, toutes les API de connexion anonyme côté client (`LoginWithCustomID`, `LoginWithAndroidDeviceID`, `LoginWithIOSDeviceID`, `LoginWithNintendoSwitchDeviceId`) ne créent plus automatiquement de nouveaux comptes de joueur. Les titres créés avant le 30 juin 2025 peuvent désactiver la connexion anonyme via la [configuration de Game Manager](/fr/services/playfab/identity/player-identity/platform-specific-authentication/anonymous-login#configuring-player-creation-settings).
   * La désactivation de la création de joueurs côté client empêche la création de comptes non autorisée directement à partir de clients non autorisés.
   * Seuls les joueurs existants peuvent se connecter via les API côté client.
2. **Création de joueurs côté serveur activée** :
   * La création de comptes de joueur est désormais gérée via les API côté serveur (`LoginWithCustomID`, `LoginWithAndroidDeviceID`, `LoginWithIOSDeviceID`, `LoginWithNintendoDeviceId`).
   * Cela garantit que toutes les créations de comptes ont lieu dans un environnement sécurisé et contrôlé.

## Prérequis

* Un identificateur unique pour le joueur (CustomID)
* Un titre [PlayFab](https://developer.playfab.com/) inscrit
* La clé secrète de votre titre PlayFab
* Une connaissance des [notions de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices)
* Un serveur doté d'un nom de domaine valide pour servir des fichiers HTML statiques

<Note>
  Si vous avez besoin d'aide pour configurer un serveur, consultez le tutoriel [Exécution d'un serveur HTTP pour les tests](/fr/services/playfab/identity/player-identity/platform-specific-authentication/running-an-http-server-for-testing). Tout au long de ce guide, nous supposerons que votre domaine est `http://playfab.example`.
</Note>

## Flux d'authentification

1. **Création de compte côté serveur** :
   * Utilisez `Server/LoginWithCustomID` avec l'API serveur pour créer de nouveaux joueurs
   * Nécessite une clé secrète de titre
   * Référence : [API serveur - Login With Custom ID](xref:titleid.playfabapi.com.server.authentication.loginwithcustomid)
2. **Connexion côté client** :
   * Utilisez `Client/LoginWithCustomID` avec l'API client pour connecter des joueurs existants
   * Référence : [API client - Login With Custom ID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid)

## Étapes d'implémentation

### 1. Configurer votre environnement de développement

1. Téléchargez le SDK JavaScript à partir de la [documentation du SDK JavaScript](/fr/services/playfab/sdks/javascript/)
2. Installez les packages Node.js requis :

```bash theme={null}
npm install playfab-sdk
```

### 2. Implémentation côté serveur (Node.js)

<Info>
  Conservez la clé secrète de votre titre en lieu sûr et ne l'exposez jamais dans le code côté client. La clé secrète ne doit être utilisée que dans des environnements serveur sécurisés.
</Info>

```javascript theme={null}
const { create } = require('domain');
const http = require('http');
const PlayFab = require('playfab-sdk');
const PlayFabServer = require('playfab-sdk/Scripts/PlayFab/PlayFabServer');

// Initialize PlayFab settings
PlayFab.settings.titleId = "YOUR_TITLE_ID"; // Replace with your actual PlayFab Title ID
PlayFab.settings.developerSecretKey = "YOUR_SECRET_KEY"; // Replace with your actual secret key

// Callback function for PlayFab API responses
function onPlayFabResponse(error, result) {
    if (error) {
        console.error("PlayFab Error:", error);
        return;
    }
    console.log("PlayFab Success:", result);
}

// Function to create user with custom ID
function createUserWithCustomId(customId, callback) {
    PlayFab.PlayFabServer.LoginWithCustomID({
        CreateAccount: true,
        CustomId: customId,
    }, (error, result) => {
        if (error) {
            console.error("PlayFab Error:", error);
            callback(error);
            return;
        }
        console.log("PlayFab Success:", result);
        callback(null, result.data);
    });
}

const customId = "YOUR_CUSTOM_ID"; // Replace with your actual custom ID
const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'application/json'});
    createUserWithCustomId(customId, (error, result) => {
        if (error) {
            res.end(JSON.stringify({ error: error }));
            return;
        }
        res.end(JSON.stringify({ success: result }));
    });
});

const port = 3000;
server.listen(port, () => {
  console.log(`Server running at http://localhost:${port}/`);
});
```

### 3. Implémentation côté client (HTML)

```html theme={null}
<!DOCTYPE html>
<html>
<head>
    <script src="PlayFabSdk/src/PlayFab/PlayFabClientApi.js"></script>
</head>
<body>
    <p>Server LoginWithCustomId Auth Example</p>
    <button onclick="loginWithCustomID()">Log In with CustomId</button>
    <script>
        function loginWithCustomID() {
            var customId = "YOUR_CUSTOM_ID";
            PlayFabClientSDK.LoginWithCustomID({
                CustomId: customId,
                TitleId: YOUR_TITLE_ID,
            }, onPlayFabResponse);
        }
       

        function onPlayFabResponse(response, error) {
            if (response)
                logLine("Response: " + JSON.stringify(response));
            if (error)
                logLine("Error: " + JSON.stringify(error));
        }

        function logLine(message) {
            var textnode = document.createTextNode(message);
            document.body.appendChild(textnode);
            var br = document.createElement("br");
            document.body.appendChild(br);
        }
    </script>
</body>
</html>
```

## Configuration des paramètres de création de joueurs

### Pour les titres existants

1. Accédez au portail des développeurs PlayFab et sélectionnez votre titre
2. Accédez à **Settings**.
3. Sélectionnez l'onglet **API Features**.
4. Cochez la case pour empêcher la création de nouveaux comptes de joueur via les API de connexion anonyme

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/anonymous-html5/existing_title.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=93fa9bb45336593fc9a984f67a77b81c" alt="Désactivation de la création de joueurs à l'aide de Client/LoginWithCustomId" width="499" height="228" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/anonymous-html5/existing_title.png" />

### Pour les nouveaux titres

<Warning>
  L'activation de la création automatique de joueurs pour les API de connexion anonyme peut compromettre la sécurité. N'activez cette fonctionnalité que temporairement, pendant le développement ou les tests. Désactivez-la toujours avant le passage en production.
</Warning>

La création de joueurs via les API anonymes est désactivée par défaut pour les nouveaux titres. Pour l'activer à des fins de test, procédez comme suit :

1. Accédez au portail des développeurs PlayFab et sélectionnez votre titre
2. Accédez à **Settings**.
3. Sélectionnez l'onglet **API Features**.
4. Décochez la case pour autoriser la création de nouveaux comptes de joueur via les API de connexion anonyme

<img src="https://mintcdn.com/microsoft-4404708b/mLCHf0iQv3VidfBe/images/playfab/identity/player-identity/platform-specific-authentication/tutorials/anonymous-html5/new_title.png?fit=max&auto=format&n=mLCHf0iQv3VidfBe&q=85&s=3f059a42ec2a12c62b5a1124c1c92333" alt="Activation de la création de joueurs à l'aide de Client/LoginWithCustomId" width="487" height="228" data-path="images/playfab/identity/player-identity/platform-specific-authentication/tutorials/anonymous-html5/new_title.png" />

## Tests et exemples de réponses

### Exemple de réponse du serveur

Lorsque vous créez correctement un utilisateur via l'API serveur, vous recevez une réponse semblable à celle-ci :

```json theme={null}
{
    "code": 200,
    "status": "OK",
    "data": {
        "PlayFabId": "PLAYFAB_ID",
        "SessionTicket": "SESSION_TICKET",
        "NewlyCreated": true
    }
}
```

### Exemple de réponse du client

Lorsque vous tentez de créer un nouveau compte à partir de l'API client (ce qui est désormais désactivé), vous recevez une erreur :

```json theme={null}
{
    "code": 400,
    "status": "BadRequest",
    "error": "PlayerCreationDisabled"
}
```

Lorsque vous connectez correctement un utilisateur existant via l'API client :

```json theme={null}
{
    "code": 200,
    "status": "OK",
    "data": {
        "PlayFabId": "PLAYFAB_ID",
        "SessionTicket": "SESSION_TICKET",
        "NewlyCreated": false
    }
}
```

## Pour aller plus loin

* [Vue d'ensemble de l'authentification PlayFab](/fr/services/playfab/identity/player-identity/authentication)
* [Notions de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices)
* [Exécution d'un serveur HTTP pour les tests](/fr/services/playfab/identity/player-identity/platform-specific-authentication/running-an-http-server-for-testing)


## Related topics

- [Authentification](/fr/services/playfab/identity/player-identity/authentication/index.md)
- [Services facultatifs](/fr/build/gdk-and-engines/optional-services.md)
- [PFAccountManagementClientAddUsernamePasswordAsync](/fr/services/playfab/api-references/c/pfaccountmanagement/functions/pfaccountmanagementclientaddusernamepasswordasync.md)
- [Gestion côté serveur des privilèges utilisateur des services XBOX](/fr/services/xbox-services/fundamentals/identity/privileges/concepts/live-user-privileges-server.md)
- [Notions de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices.md)
