---
title: "@xid-kit/core"
description: "Cliente de navegador para estado de sesión, acceso JWT de corta duración y utilidades de la API de administración."
locale: "es"
---

> Documentation Index
> Fetch the locale documentation index at: https://xid.dev/es/llms.txt
> Use this file to discover all available pages before exploring further.

# @xid-kit/core

## Instalar y configurar

Apunta `apiUrl` al origen de tu instancia XID (alojada o autoalojada). El SDK nunca almacena un secreto de cliente ni expone el material del refresh token a los scripts del navegador.

```ts
import { XidClient } from '@xid-kit/core'

const xid = new XidClient({ apiUrl: 'https://xid.dev' })
await xid.load()
const token = await xid.getToken()
```

## Ciclo de vida de la sesión

- `load()` lee `/v1/me` e hidrata el usuario, la sesión y la organización activa.
- `signInPassword()` establece una sesión con cookie a través del flujo de contraseña de Hosted Auth.
- `getToken()` devuelve un JWT de corta duración para llamadas a la API. Verifícalo sin llamadas de red en tu servidor con JWKS.
- `setActiveOrganization()` cambia el contexto de organización y limpia el caché de tokens antes de recargar el estado.
- `signOut()` revoca la cookie de sesión del navegador.

## Utilidades de la API de administración

La versión actual solo envuelve la gestión de claves API. Todos los demás recursos de la API de administración requieren llamadas REST directas a `/v1/` con `Authorization: Bearer sk_live_xxx`.

```ts
const keys = await xid.listApiKeys()
const created = await xid.createApiKey({ name: 'CI deploy', scopes: ['read'] })
await xid.revokeApiKey(created.id)
```

## API exportada

| Exportar | Tipo | Propósito |
| --- | --- | --- |
| `XidClient` | class | Cliente de navegador de nivel superior: load, signIn, getToken, setActiveOrganization, signOut y utilidades de la API de administración |
| `XidStore` | class | Store reactivo independiente del framework; suscríbete con useSyncExternalStore en los vínculos del framework |
| `TokenManager` | class | Caché JWT de corta duración y refresco programado (uso avanzado y pruebas) |
| `XidApiClient` | class | Cliente HTTP para los endpoints /v1/me y de tokens |
| `XidNetworkError` | class | Lanzado en fallos de transporte: error de red, respuesta no JSON, 5xx sin cuerpo estructurado |
| `makeXidError` | function | Construye un XidError estructurado para fallos de validación locales sin ida y vuelta de red |
| `isXidErrorShape` | function | Protector de tipo: verifica si un valor desconocido se ajusta a la forma XidError del wire |
| `decodeTokenClaims` | function | Decodifica las declaraciones del payload JWT solo para programación de expiración; no verifica la firma |
| `isTokenExpiring` | function | Devuelve true cuando el token expira dentro de la ventana de tolerancia (predeterminado 10 s) |
| `SESSION_STATUS` | tupla as const | Valores válidos de estado de sesión: active, pending, expired, removed, ended, revoked |
| `CLIENT_STATUS` | tupla as const | Valores válidos de estado del cliente: loading, ready, degraded, error |
| `PACKAGE` | constante de cadena | Identificador de nombre de paquete '@xid-kit/core' |

## Tipos

| Tipo | Descripción |
| --- | --- |
| `XidUser` | Vista de solo lectura del usuario autenticado (sin secretos ni hashes) |
| `XidOrganization` | Vista pública de la organización |
| `XidOrganizationMembership` | Membresía de usuario en una organización con rol y permisos |
| `XidSession` | Vista de sesión con estado, expiración y organización activa |
| `XidApiKey` | Clave API sin secreto (vista de lista) |
| `XidApiKeyWithSecret` | Clave API devuelta una sola vez al crearla; incluye el campo key |
| `XidPage<T>` | Envoltorio de respuesta con paginación por cursor |
| `CreateApiKeyInput` | Entrada para createApiKey |
| `SignInPasswordInput` | Entrada para signInPassword |
| `SignInResult` | Resultado de signInPassword: siguiente paso o URL de redirección |
| `SessionStatus` | Unión de valores de SESSION\_STATUS |
| `ClientStatus` | Unión de valores de CLIENT\_STATUS |
| `XidState` | Instantánea completa del estado del SDK suscrita desde XidStore |
| `XidStateListener` | Tipo de callback para escucha de cambios de estado |
| `Unsubscribe` | Tipo de retorno de XidStore.subscribe |
| `GetTokenOptions` | Opciones para getToken: template, skipCache, leewaySeconds, signal |
| `XidClientOptions` | Opciones del constructor para XidClient: apiUrl, fetcher, now |
| `TokenResponse` | Forma de la respuesta bruta del endpoint de token |
| `ClientStateResponse` | Forma de la respuesta bruta de /v1/me |
| `DecodedTokenClaims` | Declaraciones del payload JWT devueltas por decodeTokenClaims |

## Documentación relacionada

Vínculos de framework: [@xid-kit/react](/es/sdks/react). Verificación en servidor: [@xid-kit/backend](/es/sdks/backend).

Source: https://xid.dev/es/sdks/core/index.mdx
