> ## 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écouvrez comment configurer les métadonnées de session Auth0

# Configurer les métadonnées de session

<Warning>
  Les métadonnées de session sont actuellement en accès anticipé et réservées aux clients Enterprise. En utilisant cette fonctionnalité, vous acceptez les conditions applicables de période d’essai gratuite prévues dans le [Master Subscription Agreement](https://www.okta.com/legal) d’Okta. Pour en savoir plus sur le cycle de publication des produits Auth0, consultez la page [Product Release Stages](https://auth0.com/docs/troubleshoot/product-lifecycle/product-release-stages).
</Warning>

Pour configurer les métadonnées de session, vous pouvez utiliser une [Action Post-Login](/docs/fr-CA/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) Auth0 et la [Management API](https://auth0.com/docs/api/management/v2). Vous pouvez aussi les inclure dans le jeton [OpenID Connect Back-Channel Logout](/docs/fr-CA/authenticate/login/logout/back-channel-logout).

## Auth0 Management API

Vous pouvez gérer les opérations CRUD (création, remplacement, mise à jour, suppression) sur les métadonnées de session à l’aide de la Management API :

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Les appels au point de terminaison `/api/v2/sessions/{id}` nécessitent un [jeton d’accès pour la Management API](/docs/fr-CA/secure/tokens/access-tokens) avec la portée `update:session`.
</Callout>

<div id="retrieve-existing-session-metadata">
  ### Récupérer les métadonnées de session existantes
</div>

Envoyez une requête `GET` au point de terminaison [`/api/v2/sessions/{id}`](https://auth0.com/docs/api/management/v2/sessions/get-session) :

```bash lines theme={null}
GET /api/v2/sessions/{id}
```

<div id="add-or-update-existing-session-metadata">
  ### Ajouter ou mettre à jour les métadonnées de session existantes
</div>

Envoyez une requête `PATCH` au point de terminaison [`/api/v2/sessions/{id}`](https://auth0.com/docs/api/management/v2/sessions/patch-sessions-by-id) :

```bash lines theme={null}
PATCH /api/v2/sessions/{id}
Content-Type: application/json

{
  "session_metadata": {
    "my_metadata": "my new metadata"
  }
}
```

<div id="delete-session-metadata">
  ### Supprimer les métadonnées de session
</div>

Envoyez une requête `PATCH` à l’endpoint [`/api/v2/sessions/{id}`](https://auth0.com/docs/api/management/v2/sessions/patch-sessions-by-id) :

```bash lines theme={null}
PATCH /api/v2/sessions/{id}
Content-Type: application/json

{
  "session_metadata": {}
}
```

<div id="auth0-post-login-actions">
  ## Actions Auth0 post-connexion
</div>

Vous pouvez gérer les opérations CRUD sur les métadonnées de session à l'aide des objets `api.session` avec une [Action post-connexion](/docs/fr-CA/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger). Cela vous permet de gérer les métadonnées de session en fonction d’une logique propre à l’utilisateur ou au contexte.

<div id="retrieve-existing-session-metadata">
  ### Récupérer les métadonnées de session existantes
</div>

Utilisez l’objet `event.session.metadata?.deviceName` pour lire les métadonnées `deviceName` :

```javascript lines theme={null}
const device = event.session.metadata?.deviceName;
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  L'objet `event.session.metadata` inclut les métadonnées définies dans :
  \*Actions précédentes dans le même flux
  \*Transactions antérieures si la session a été réutilisée
</Callout>

<div id="add-or-update-existing-metadata">
  ### Ajouter ou mettre à jour les métadonnées existantes
</div>

Utilisez la méthode `api.session.setMetadata()` pour mettre à jour les métadonnées de la session :

```javascript lines theme={null}
api.session.setMetadata("deviceName", "Auth0's iPhone");
```

Les modifications sont immédiatement disponibles dans l’objet `event.session` dans les Actions suivantes.

<div id="delete-session-metadata">
  ### Supprimer les métadonnées de session
</div>

Utilisez les objets `api.session` suivants pour supprimer les métadonnées de session :

* `api.session.deleteMetadata("key")` supprime les métadonnées de session spécifiées.
* `api.session.evictMetadata()` supprime toutes les métadonnées de session.

Pour en savoir plus sur ces objets, consultez :

* [Objet Event](/docs/fr-CA/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object) : découvrez l’objet Event du Jeton d’actualisation et ses propriétés.
* [Objet API](/docs/fr-CA/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object) : découvrez l’objet API du Jeton d’actualisation et ses méthodes.

<div id="oidc-back-channel-logout">
  ## Déconnexion back-channel OIDC
</div>

Vous pouvez configurer le `logout_token` pour inclure des métadonnées de session en utilisant le [Dashboard](/docs/fr-CA/get-started/auth0-overview/dashboard) Auth0 ou la [Management API](https://auth0.com/docs/api/management/v2).

<div id="auth0-dashboard">
  ### Auth0 Dashboard
</div>

Pour configurer le jeton de déconnexion OIDC Back-Channel avec les métadonnées de session :

1. Accédez à [Dashboard > Applications](https://manage.auth0.com/#/applications) et sélectionnez votre Application.

2. Sélectionnez l’onglet **Settings**.

3. Sous **OpenID Connect Back-Channel Logout > Back-Channel Logout URL**, ajoutez l’URI de déconnexion de l’Application qui recevra les logout\_tokens.

4. Définissez **Back-Channel Logout Initiators** sur l’une des options suivantes :

   * **Selected initiators only** ou

   * **All supported initiators**

5. Activez **Include Session Metadata**.

6. Sélectionnez **Save Changes**.

Une fois configuré, le `logout_token` inclura toutes les métadonnées de session stockées.

<div id="auth0-management-api">
  ### Auth0 Management API
</div>

Vous pouvez utiliser le point de terminaison [`/api/v2/clients/{id}`](https://auth0.com/docs/api/management/v2/sessions/patch-sessions-by-id) pour mettre à jour votre application et inclure les métadonnées de session dans le `logout_token`.

Envoyez une requête `PATCH` au point de terminaison [`/api/v2/sessions/{id}`](https://auth0.com/docs/api/management/v2/sessions/patch-sessions-by-id) :

```json lines theme={null}
"oidc_backchannel_logout": {
  "backchannel_logout_initiators": {
    "mode": "all"
  },
  "backchannel_logout_urls": [
    "https://httpdump.app/inspect/9bccf574-e55f-4b2e-9822-f37372588fc1"
  ],
  "backchannel_logout_session_metadata": {
    "include": true
  }
}
```

<div id="error-handling">
  ## Gestion des erreurs
</div>

Vous pouvez consulter les événements de journal des métadonnées de session en accédant à [Dashboard > Monitoring > Logs](https://manage.auth0.com/#/logs) ou récupérer les journaux à l’aide du point de terminaison [Management API logs](/docs/fr-CA/api/management/v2/logs/get-logs).

* Si une erreur se produit lors de l’ajout ou de la mise à jour des métadonnées de session avec Actions, la transaction d’authentification échoue et une erreur est renvoyée à l’URL de retour.

Un code d’événement d’échec `f` est consigné avec l’erreur correspondante :

```json lines theme={null}
{
  "error": "access_denied",
  "error_description": "Échec de la définition des métadonnées de session : Métadonnées non valides : Les clés de métadonnées ne peuvent inclure que des lettres, des chiffres, des traits de soulignement ou des traits d'union",
  "state": "my-custom-state"
}
```

* En cas d’échec lors de la gestion des métadonnées de session à l’aide de l’Auth0 Management API, l’API renvoie une erreur `HTTP status: 400` et le message correspondant :

```json lines theme={null}
{
  "statusCode": 400,
  "message": "Les métadonnées ne doivent pas dépasser 25 entrées. Chaque clé et valeur ne doit pas dépasser 255 caractères."
}
```
