インストールと設定
apiUrl を XID インスタンスのオリジン(ホスト型またはセルフホスト型)に設定してください。SDK はクライアントシークレットを保存せず、refresh token の素材をブラウザースクリプトに公開しません。
import { XidClient } from '@xid-kit/core'
const xid = new XidClient({ apiUrl: 'https://xid.dev' })
await xid.load()
const token = await xid.getToken()セッションのライフサイクル
load()は/v1/meを読み取り、ユーザー、セッション、アクティブな組織を初期化します。signInPassword()は Hosted Auth のパスワードフローを通じて cookie セッションを確立します。getToken()は API 呼び出し用の短期 JWT を返します。バックエンドで JWKS を使ってネットワーク不要で検証してください。setActiveOrganization()は組織コンテキストを切り替え、状態を再読み込みする前にトークンキャッシュをクリアします。signOut()はブラウザーのセッション cookie を取り消します。
Management API ヘルパー
現在のバージョンは API キー管理のみをラップします。他のすべての Management API リソースは Authorization: Bearer sk_live_xxx を使った直接の /v1/ REST 呼び出しが必要です。
const keys = await xid.listApiKeys()
const created = await xid.createApiKey({ name: 'CI deploy', scopes: ['read'] })
await xid.revokeApiKey(created.id)エクスポートされた API
| エクスポート | 種別 | 目的 |
|---|---|---|
XidClient |
class | トップレベルブラウザークライアント:load、signIn、getToken、setActiveOrganization、signOut、Management API ヘルパー |
XidStore |
class | フレームワーク非依存のリアクティブストア。フレームワークバインディングでは useSyncExternalStore でサブスクライブします |
TokenManager |
class | 短期 JWT キャッシュとスケジュール更新(高度な使用およびテスト向け) |
XidApiClient |
class | /v1/me およびトークンエンドポイント向けの HTTP クライアント |
XidNetworkError |
class | トランスポート失敗(ネットワークエラー、非 JSON レスポンス、構造化ボディなしの 5xx)でスローされます |
makeXidError |
function | ネットワーク往復なしにローカル検証失敗用の構造化 XidError を構築します |
isXidErrorShape |
function | 型ガード:不明な値がワイヤーからの XidError 形状に準拠しているか確認します |
decodeTokenClaims |
function | 有効期限スケジューリング専用に JWT ペイロードクレームをデコードします。署名は検証しません |
isTokenExpiring |
function | トークンが許容ウィンドウ内(デフォルト 10 秒)で期限切れになる場合に true を返します |
SESSION_STATUS |
as const タプル | 有効なセッション状態値:active、pending、expired、removed、ended、revoked |
CLIENT_STATUS |
as const タプル | 有効なクライアント状態値:loading、ready、degraded、error |
PACKAGE |
文字列定数 | パッケージ名識別子 ‘@xid-kit/core’ |
型
| 種別 | 説明 |
|---|---|
XidUser |
認証済みユーザーの読み取り専用ビュー(シークレットやハッシュなし) |
XidOrganization |
組織の公開ビュー |
XidOrganizationMembership |
ロールと権限を持つ組織内のユーザーメンバーシップ |
XidSession |
状態、有効期限、アクティブな組織を含むセッションビュー |
XidApiKey |
シークレットなしの API キー(一覧表示) |
XidApiKeyWithSecret |
作成時に一度だけ返される API キー。key フィールドを含みます |
XidPage<T> |
カーソルページネーション対応のレスポンスエンベロープ |
CreateApiKeyInput |
createApiKey の入力型 |
SignInPasswordInput |
signInPassword の入力型 |
SignInResult |
signInPassword の結果:次のステップまたはリダイレクト URL |
SessionStatus |
SESSION_STATUS 値のユニオン |
ClientStatus |
CLIENT_STATUS 値のユニオン |
XidState |
XidStore からサブスクライブされた完全な SDK 状態スナップショット |
XidStateListener |
状態変化リスナーコールバック型 |
Unsubscribe |
XidStore.subscribe の戻り値の型 |
GetTokenOptions |
getToken のオプション:template、skipCache、leewaySeconds、signal |
XidClientOptions |
XidClient のコンストラクターオプション:apiUrl、fetcher、now |
TokenResponse |
トークンエンドポイントレスポンスの生の形状 |
ClientStateResponse |
/v1/me レスポンスの生の形状 |
DecodedTokenClaims |
decodeTokenClaims が返す JWT ペイロードクレーム |
関連ドキュメント
フレームワークバインディング:@xid-kit/react。サーバー検証:@xid-kit/backend。