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

# Désassocier des comptes d’utilisateurs

> Découvrez comment utiliser le point de terminaison Unlink a User Account (Dissocier un compte utilisateur) de Management API pour dissocier une identité du compte utilisateur cible, le rétablissant ainsi en tant que compte utilisateur distinct.

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [processedChildren, setProcessedChildren] = useState(children);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      unsubscribe = window.autorun(() => {
        let processedChildren = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          processedChildren = processedChildren.replace(new RegExp(key, "g"), value);
        }
        setProcessedChildren(processedChildren);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  return <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
      {processedChildren}
    </CodeBlock>;
};

Utilisez le point de terminaison [Unlink a User Account (Dissocier un compte utilisateur)](/docs/fr-CA/fr-ca/api/management/v2#!/Users/delete_user_identity_by_user_id) de <Tooltip href="/docs/fr-CA/fr-ca/glossary?term=management-api" tip="Management API
Un produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire">Management API</Tooltip> Auth0 ou la bibliothèque Auth0.js pour dissocier une identité du compte utilisateur cible, le transformant ainsi en un compte utilisateur distinct.

Le résultat du processus de dissociation est le suivant :

* Le compte secondaire est supprimé du tableau des identités du compte principal.
* Un nouveau compte utilisateur secondaire est créé.
* Le compte secondaire ne contiendra aucune métadonnée.

Si votre objectif est de supprimer complètement l’identité secondaire, vous devez d’abord dissocier les comptes, puis [supprimer le compte secondaire nouvellement créé](/docs/fr-CA/fr-ca/manage-users/user-accounts/delete-users).

Selon l’endroit d’où vous appelez le point de terminaison, utilisez l’une de ces deux permissions :

* `update:current_user_identities` à partir de [client-side code](/docs/fr-CA/fr-ca/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation)
* `update:users` à partir de [server-side code](/docs/fr-CA/fr-ca/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation)

Le point de terminaison utilise les paramètres suivants :

<table class="table">
  <thead>
    <tr>
      <th>Parameter</th>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`id`</td>
      <td>`string`</td>
      <td>ID du compte d’utilisateur principal (obligatoire)</td>
    </tr>

    <tr>
      <td>`provider`</td>
      <td>`string`</td>
      <td>Nom du fournisseur d’identité du compte secondaire lié (par exemple, `google-oauth2`)</td>
    </tr>

    <tr>
      <td>`user_id`</td>
      <td>`string`</td>
      <td>Identifiant du compte secondaire lié (par exemple, la partie `123456789081523216417` après le `|` in `google-oauth2|123456789081523216417`)</td>
    </tr>
  </tbody>
</table>

Si votre instance comporte des utilisateurs provenant de plusieurs fournisseurs, vous pouvez également inclure `[connection_name]|` avant le `user_id` stringpour nommer le fournisseur (par exemple, `"user-id": "google-oauth2|123456789081523216417"`).

<div id="response-example">
  ## Exemple de réponse
</div>

```json lines theme={null}
[
  {
    "connection": "Initial-Connection",
    "user_id": "5457edea1b8f22891a000004",
    "provider": "auth0",
    "isSocial": false,
    "access_token": "",
    "profileData": {
      "email": "",
      "email_verified": false,
      "name": "",
      "username": "johndoe",
      "given_name": "",
      "phone_number": "",
      "phone_verified": false,
      "family_name": ""
    }
  }
]
```

<div id="use-jwt-from-the-primary-account">
  ## Utiliser JWT à partir du compte principal
</div>

Pour dissocier des comptes, appelez Management API [Dissocier un point de terminaison de compte utilisateur](/docs/fr-CA/fr-ca/api/v2#!/Users/delete_user_identity_by_user_id) en utilisant le <Tooltip href="/docs/fr-CA/fr-ca/glossary?term=json-web-token" tip="Jeton Web JSON (JWT)
Format standard de jeton d’ID (et souvent de jeton d’accès) utilisé pour représenter en toute sécurité des demandes entre deux parties." cta="Voir le glossaire">JWT</Tooltip> du compte principal pour l’autorisation :

export const codeExample1 = `function unlinkAccount(secondaryProvider, secondaryUserId){
  var primaryUserId = localStorage.getItem('user_id');
  var primaryJWT = localStorage.getItem('id_token');
  $.ajax({
    type: 'DELETE',
    url: 'https://' + '{yourDomain}' + '/api/v2/users/' + primaryUserId +
         '/identities/' + secondaryProvider + '/' + secondaryUserId,
    headers: {
      'Authorization': 'Bearer ' + primaryJWT
    }
  }).then(function(identities){
    alert('unlinked!');
    showLinkedAccounts(identities);
  }).fail(function(jqXHR){
    alert('Error unlinking Accounts: ' + jqXHR.status + ' ' + jqXHR.responseText);
  });
}`;

<AuthCodeBlock children={codeExample1} language="javascript" />

<div id="use-access-token-with-the-updateusers-scope">
  ## Utilisez le jeton d’accès avec la permission update:users
</div>

Si vous devez dissocier deux ou plusieurs comptes utilisateur, appelez Management API [Dissocier un point de terminaison de compte utilisateur](/docs/fr-CA/fr-ca/api/v2#!/Users/delete_user_identity_by_user_id) en utilisant un [Jeton d’accès à Management API](/docs/fr-CA/fr-ca/api/v2/tokens) avec la permission `update:users`.

```javascript lines theme={null}
function unlinkAccount(secondaryProvider, secondaryUserId) {
  var primaryUserId = localStorage.getItem('user_id');
  var primaryAccessToken = localStorage.getItem('access_token');

  // Uses the Access Token of the primary user as a bearer token to identify the account
  // which will have the account unlinked to, and the user id of the secondary user, to identify
  // the user that will be unlinked from the primary account.

  $.ajax({
    type: 'DELETE',
    url: 'https://' + AUTH0_DOMAIN +'/api/v2/users/' + primaryUserId +
         '/identities/' + secondaryProvider + '/' + secondaryUserId,
    headers: {
      'Authorization': 'Bearer ' + primaryAccessToken
    }
  }).then(function(identities){
    alert('unlinked!');
    showLinkedAccounts(identities);
  }).fail(function(jqXHR){
    alert('Error unlinking Accounts: ' + jqXHR.status + ' ' + jqXHR.responseText);
  });
}
```

<div id="unlink-accounts-from-server-side-code">
  ## Dissocier les comptes du code côté serveur
</div>

1. Mettre à jour l’utilisateur en session avec le nouveau tableau d’identités (chacun représentant un compte utilisateur distinct).

```javascript lines theme={null}
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn();
const Auth0Client = require('../Auth0Client');
const express = require('express');
const router = express.Router();
...
router.post('/unlink-accounts/:targetUserProvider/:targetUserId',ensureLoggedIn, (req,res,next) => {
  Auth0Client.unlinkAccounts(req.user.id, req.params.targetUserProvider, req.params.targetUserId)
  .then( identities => {
    req.user.identities = req.user._json.identities = identities;
    res.send(identities);
  })
  .catch( err => {
    console.log('Error unlinking accounts!',err);
    next(err);
  });
});
```

1. Appelez [Dissocier un point de terminaison de compte utilisateur](/docs/fr-CA/fr-ca/api/v2#!/Users/delete_user_identity_by_user_id) de Management API v2 en utilisant [Jeton d’accès à Management API](/docs/fr-CA/fr-ca/api/v2/tokens) avec la permission `update:users`.

export const codeExample2 = `const request = require('request');

class Auth0Client {
  ...
  unlinkAccounts(rootUserId, targetUserProvider, targetUserId){
    return new Promise((resolve,reject) => {
      var reqOpts = {
        method: 'DELETE',
        url: 'https://{yourDomain}/api/v2/users/' + rootUserId +
            '/identities/' + targetUserProvider + '/' + targetUserId,
        headers: {
          'Authorization': 'Bearer ' + process.env.AUTH0_APIV2_TOKEN
        }
      };
      request(reqOpts,(error, response, body) => {
        if (error) {
          return reject(error);
        } else if (response.statusCode !== 200) {
          return reject('Error unlinking accounts. Status: '+ response.statusCode + ' ' + JSON.stringify(body));
        } else {
          resolve(JSON.parse(body));
        }
      });
    });
  }
}

module.exports = new Auth0Client();`;

<AuthCodeBlock children={codeExample2} language="javascript" />

<div id="learn-more">
  ## En savoir plus
</div>

* [Associer des comptes d’utilisateurs](/docs/fr-CA/fr-ca/manage-users/user-accounts/user-account-linking/link-user-accounts)
* [Association de comptes d’utilisateur : mise en œuvre côté serveur](/docs/fr-CA/fr-ca/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation)
* [Liaison de compte initiée par l’utilisateur : Mise en œuvre côté client](/docs/fr-CA/fr-ca/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation)
