---
title: "@xid-kit/core"
description: "Client navigateur pour l'état de session, l'accès JWT de courte durée et les assistants de l'API de gestion."
locale: "fr"
---

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

# @xid-kit/core

## Installer et configurer

Pointez `apiUrl` vers l'origine de votre instance XID (hébergée ou auto-hébergée). Le SDK ne stocke jamais de secret client et n'expose pas le matériel de refresh token aux scripts navigateur.

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

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

## Cycle de vie de session

- `load()` lit `/v1/me` et hydrate l'utilisateur, la session et l'organisation active.
- `signInPassword()` établit une session cookie via le flux de mot de passe Hosted Auth.
- `getToken()` retourne un JWT de courte durée pour les appels API. Vérifiez sans réseau sur votre serveur avec JWKS.
- `setActiveOrganization()` change le contexte d'organisation et vide le cache de jeton avant de recharger l'état.
- `signOut()` révoque le cookie de session du navigateur.

## Assistants de l'API de gestion

La version actuelle encapsule uniquement la gestion des clés API. Toutes les autres ressources de l'API de gestion nécessitent des appels REST directs `/v1/` avec `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 exportée

| Exporter | Type | Objectif |
| --- | --- | --- |
| `XidClient` | class | Client navigateur de niveau supérieur : load, signIn, getToken, setActiveOrganization, signOut et assistants de l'API de gestion |
| `XidStore` | class | Store réactif indépendant du framework ; s'abonner avec useSyncExternalStore dans les liaisons framework |
| `TokenManager` | class | Cache JWT de courte durée et rafraîchissement planifié (usage avancé et tests) |
| `XidApiClient` | class | Client HTTP pour les points de terminaison /v1/me et token |
| `XidNetworkError` | class | Levée lors d'échecs de transport : erreur réseau, réponse non-JSON, 5xx sans corps structuré |
| `makeXidError` | function | Construit un XidError structuré pour les échecs de validation locaux sans aller-retour réseau |
| `isXidErrorShape` | function | Type guard : vérifie si une valeur inconnue est conforme à la structure XidError depuis le réseau |
| `decodeTokenClaims` | function | Décode les revendications du payload JWT uniquement pour la planification d'expiration ; ne vérifie pas la signature |
| `isTokenExpiring` | function | Retourne true lorsque le token expire dans la fenêtre de tolérance (défaut 10 s) |
| `SESSION_STATUS` | tuple as const | Valeurs valides du statut de session : active, pending, expired, removed, ended, revoked |
| `CLIENT_STATUS` | tuple as const | Valeurs valides du statut client : loading, ready, degraded, error |
| `PACKAGE` | constante string | Identifiant du nom de package '@xid-kit/core' |

## Types

| Type | Description |
| --- | --- |
| `XidUser` | Vue en lecture seule de l'utilisateur authentifié (sans secrets ni hachages) |
| `XidOrganization` | Vue publique de l'organisation |
| `XidOrganizationMembership` | Appartenance d'un utilisateur à une organisation avec rôle et permissions |
| `XidSession` | Vue de session incluant le statut, l'expiration et l'organisation active |
| `XidApiKey` | Clé API sans secret (vue liste) |
| `XidApiKeyWithSecret` | Clé API retournée une seule fois à la création ; contient le champ key |
| `XidPage<T>` | Enveloppe de réponse paginée par curseur |
| `CreateApiKeyInput` | Entrée pour createApiKey |
| `SignInPasswordInput` | Entrée pour signInPassword |
| `SignInResult` | Résultat de signInPassword : étape suivante ou URL de redirection |
| `SessionStatus` | Union des valeurs de SESSION\_STATUS |
| `ClientStatus` | Union des valeurs de CLIENT\_STATUS |
| `XidState` | Instantané complet de l'état SDK souscrit depuis XidStore |
| `XidStateListener` | Type de callback de listener de changement d'état |
| `Unsubscribe` | Type de retour de XidStore.subscribe |
| `GetTokenOptions` | Options pour getToken : template, skipCache, leewaySeconds, signal |
| `XidClientOptions` | Options du constructeur de XidClient : apiUrl, fetcher, now |
| `TokenResponse` | Structure de réponse brute du point de terminaison token |
| `ClientStateResponse` | Structure de réponse brute de /v1/me |
| `DecodedTokenClaims` | Revendications du payload JWT retournées par decodeTokenClaims |

## Documentation connexe

Liaisons framework : [@xid-kit/react](/fr/sdks/react). Vérification serveur : [@xid-kit/backend](/fr/sdks/backend).

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