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.
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/meet 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.
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. Vérification serveur : @xid-kit/backend.