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

> Aprende a configurar los metadatos de sesión de Auth0

# Configurar metadatos de sesión

Para configurar los metadatos de sesión, puedes usar una [Action de post-login](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) de Auth0 y la [Management API](https://auth0.com/docs/api/management/v2). También puedes incluirlos en el token de [OpenID Connect Back-Channel Logout](/es/docs/authenticate/login/logout/back-channel-logout).

<Warning>
  Los metadatos de sesión de Auth0 no son un almacén de datos seguro y no deben usarse para guardar información confidencial. Esto incluye secretos e información de identificación personal (PII) de alto riesgo, como números de la seguridad social o de tarjetas de crédito. Se recomienda encarecidamente a los clientes de Auth0 que evalúen los datos almacenados en los metadatos y que solo guarden los que sean necesarios para fines de gestión de identidades y acceso. Para obtener más información, consulta [Auth0 General Data Protection Regulation Compliance](/es/docs/secure/data-privacy-and-compliance/gdpr).
</Warning>

## Auth0 Management API

Puede gestionar las solicitudes CRUD (crear, reemplazar, actualizar y eliminar) de los metadatos de las sesiones mediante la Management API:

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Las llamadas al endpoint `/api/v2/sessions/{id}` requieren un [token de acceso para la Management API](/es/docs/secure/tokens/access-tokens) con el scope `update:session`.
</Callout>

<div id="retrieve-existing-session-metadata">
  ### Recuperar los metadatos de una sesión existente
</div>

Haga una solicitud `GET` al endpoint [`/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">
  ### Agregar o actualizar los metadatos de una sesión existente
</div>

Realice una solicitud `PATCH` al 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": {
    "my_metadata": "my new metadata"
  }
}
```

<div id="delete-session-metadata">
  ### Eliminar los metadatos de la sesión
</div>

Envíe una solicitud `PATCH` al 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 de post-login de Auth0
</div>

Puede gestionar las operaciones CRUD de los metadatos de sesión mediante los objetos `api.session` con una [Action de post-login](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger). Esto le permite gestionar los metadatos de sesión en función del usuario o de una lógica específica del contexto.

### Recupera los metadatos de sesión existentes

Usa el objeto `event.session.metadata?.deviceName` para leer el metadato `deviceName`:

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

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  El objeto `event.session.metadata` incluye los metadatos definidos en:
  \*Actions previas dentro del mismo flujo
  \*Transacciones previas si se reutilizó la sesión
</Callout>

<div id="add-or-update-existing-metadata">
  ### Añada o actualice los metadatos existentes
</div>

Use el método `api.session.setMetadata()` para actualizar los metadatos de la sesión:

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

Los cambios están disponibles de inmediato en el objeto `event.session` en las Actions siguientes.

<div id="delete-session-metadata">
  ### Eliminar los metadatos de la sesión
</div>

Utilice los siguientes objetos `api.session` para eliminar los metadatos de la sesión:

* `api.session.deleteMetadata("key")` elimina los metadatos de la sesión especificados

* `api.session.evictMetadata()` elimina todos los metadatos de la sesión

Para obtener más información sobre estos objetos, consulte:

* [objeto Event](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object): Obtenga más información sobre el objeto Event del token de actualización y sus propiedades.
* [objeto API](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object): Obtenga más información sobre el objeto API del token de actualización y sus métodos.

<div id="oidc-back-channel-logout">
  ## Cierre de sesión por canal secundario de OIDC
</div>

Puede configurar el `logout_token` para que incluya metadatos de sesión desde el [Dashboard](/es/docs/get-started/auth0-overview/dashboard) de Auth0 o la [Management API](https://auth0.com/docs/api/management/v2).

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

Para configurar el token de cierre de sesión por canal secundario de OIDC para que incluya metadatos de sesión:

1. Vaya a [Dashboard > Applications](https://manage.auth0.com/#/applications) y seleccione su aplicación.

2. Seleccione la pestaña **Settings**.

3. En **OpenID Connect Back-Channel Logout > Back-Channel Logout URL**, agregue el URI de cierre de sesión de la aplicación que recibirá los `logout_tokens`.

4. Configure **Back-Channel Logout Initiators** con una de las siguientes opciones:

   * **Solo los iniciadores seleccionados** o

   * **Todos los iniciadores compatibles**

5. Active **Include Session Metadata**.

6. Seleccione **Save Changes**.

Una vez configurado, el `logout_token` incluirá todos los metadatos de sesión almacenados.

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

Puede usar el endpoint [`/api/v2/clients/{id}`](https://auth0.com/docs/api/management/v2/sessions/patch-sessions-by-id) para actualizar su aplicación e incluir metadatos de sesión en el `logout_token`.

Realice una solicitud `PATCH` al endpoint [`/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">
  ## Manejo de errores
</div>

Puede revisar los eventos de registro de los metadatos de sesión en [Dashboard > Monitoring > Logs](https://manage.auth0.com/#/logs) o recuperar los log mediante el endpoint [Management API logs](/es/docs/api/management/v2/logs/get-logs).

* Si se produce un error al añadir o actualizar metadatos de sesión con Actions, la transacción de autenticación falla y se devuelve un error a la URL de devolución de llamada.

Se registra un código de evento de fallo `f` con su error correspondiente:

```json lines theme={null}
{
  "error": "access_denied",
  "error_description": "Failed to set session metadata: Invalid metadata: Metadata keys may only include letters, numbers, underscores, or hyphens",
  "state": "my-custom-state"
}
```

* Si se produce un error al gestionar los metadatos de la sesión mediante la Auth0 Management API, la API responde con un error `HTTP status: 400` y el mensaje correspondiente:

```json lines theme={null}
{
  "statusCode": 400,
  "message": "Metadata must not exceed 25 entries. Each key and value must be ≤ 255 characters."
}
```
