---
title: "@xid-kit/core"
description: "Browser-Client für Sitzungszustand, kurzlebige JWT-Zugriffe und Management-API-Helfer."
locale: "de"
---

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

# @xid-kit/core

## Installieren und konfigurieren

Richten Sie `apiUrl` auf Ihren XID-Instanzursprung (gehostet oder selbst gehostet). Das SDK speichert niemals ein Client-Geheimnis und gibt kein Refresh-Token-Material an Browser-Skripte weiter.

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

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

## Sitzungslebenszyklus

- `load()` liest `/v1/me` und befüllt Benutzer, Sitzung und aktive Organisation.
- `signInPassword()` richtet eine Cookie-Sitzung über den Hosted Auth Passwort-Ablauf ein.
- `getToken()` gibt ein kurzlebiges JWT für API-Aufrufe zurück. Prüfen Sie es netzwerklos in Ihrem Backend mit JWKS.
- `setActiveOrganization()` wechselt den Organisationskontext und leert den Token-Cache, bevor der Zustand neu geladen wird.
- `signOut()` widerruft den Browser-Sitzungs-Cookie.

## Management-API-Helfer

Die aktuelle Version umschließt nur die API-Schlüsselverwaltung. Alle anderen Management-API-Ressourcen erfordern direkte `/v1/`-REST-Aufrufe mit `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)
```

## Exportierte API

| Exportieren | Art | Zweck |
| --- | --- | --- |
| `XidClient` | class | Oberster Browser-Client: load, signIn, getToken, setActiveOrganization, signOut und Management-API-Helfer |
| `XidStore` | class | Framework-agnostischer reaktiver Speicher; mit useSyncExternalStore in Framework-Bindungen abonnieren |
| `TokenManager` | class | Kurzlebiger JWT-Cache und geplante Aktualisierung (erweiterte Nutzung und Tests) |
| `XidApiClient` | class | HTTP-Client für /v1/me und Token-Endpunkte |
| `XidNetworkError` | class | Wird bei Transportfehlern geworfen: Netzwerkfehler, Nicht-JSON-Antwort, 5xx ohne strukturierten Body |
| `makeXidError` | function | Einen strukturierten XidError für lokale Validierungsfehler ohne Netzwerkumlauf erstellen |
| `isXidErrorShape` | function | Typwächter: prüft, ob ein unbekannter Wert der XidError-Form aus der Übertragung entspricht |
| `decodeTokenClaims` | function | JWT-Payload-Claims nur für die Ablaufplanung dekodieren; verifiziert die Signatur nicht |
| `isTokenExpiring` | function | Gibt true zurück, wenn das Token innerhalb des Toleranzfensters abläuft (Standard 10 s) |
| `SESSION_STATUS` | as const Tupel | Gültige Sitzungsstatuswerte: active, pending, expired, removed, ended, revoked |
| `CLIENT_STATUS` | as const Tupel | Gültige Client-Statuswerte: loading, ready, degraded, error |
| `PACKAGE` | Zeichenkettenkonstante | Paketkennzeichner '@xid-kit/core' |

## Typen

| Typ | Beschreibung |
| --- | --- |
| `XidUser` | Schreibgeschützte Ansicht des authentifizierten Benutzers (keine Geheimnisse oder Hashes) |
| `XidOrganization` | Öffentliche Organisationsansicht |
| `XidOrganizationMembership` | Benutzermitgliedschaft in einer Organisation mit Rolle und Berechtigungen |
| `XidSession` | Sitzungsansicht mit Status, Ablauf und aktiver Organisation |
| `XidApiKey` | API-Schlüssel ohne Geheimnis (Listenansicht) |
| `XidApiKeyWithSecret` | API-Schlüssel wird einmalig bei der Erstellung zurückgegeben; enthält das Schlüsselfeld |
| `XidPage<T>` | Cursor-paginierter Antwort-Envelope |
| `CreateApiKeyInput` | Eingabe für createApiKey |
| `SignInPasswordInput` | Eingabe für signInPassword |
| `SignInResult` | Ergebnis von signInPassword: nächster Schritt oder Weiterleitungs-URL |
| `SessionStatus` | Vereinigung der SESSION\_STATUS-Werte |
| `ClientStatus` | Vereinigung der CLIENT\_STATUS-Werte |
| `XidState` | Vollständiger SDK-Zustandsschnappschuss, abonniert von XidStore |
| `XidStateListener` | Callback-Typ für Zustandsänderungs-Listener |
| `Unsubscribe` | Rückgabetyp von XidStore.subscribe |
| `GetTokenOptions` | Optionen für getToken: template, skipCache, leewaySeconds, signal |
| `XidClientOptions` | Konstruktoroptionen für XidClient: apiUrl, fetcher, now |
| `TokenResponse` | Rohform der Token-Endpunkt-Antwort |
| `ClientStateResponse` | Rohform der /v1/me-Antwort |
| `DecodedTokenClaims` | JWT-Payload-Claims, zurückgegeben von decodeTokenClaims |

## Zugehörige Dokumentation

Framework-Bindungen: [@xid-kit/react](/de/sdks/react). Server-Verifizierung: [@xid-kit/backend](/de/sdks/backend).

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