Zum Inhalt springen

@xid-kit/backend

Netzwerklose JWT-Prüfung, Anfrage-Authentifizierung und Webhook-Signaturvalidierung für Edge- und Server-Laufzeitumgebungen.

Als Markdown anzeigen

Laufzeitunterstützung

  • Cloudflare Workers (primäres Ziel)
  • Vercel Edge Runtime und Node.js Server-Laufzeitumgebungen
  • Jede mit Web Crypto kompatible Laufzeitumgebung (Bun, Deno)

authenticateRequest

Ein Bearer-Token oder Session-Cookie aus einer eingehenden Request extrahieren, Signatur und Claims prüfen und ein angemeldetes oder abgemeldetes Zustandsobjekt zurückgeben.

import { authenticateRequest } from '@xid-kit/backend'

const state = await authenticateRequest(request, {
  jwtKey: env.XID_JWKS_PUBLIC_KEY,
  issuer: 'https://xid.dev',
})
if (state.status === 'signed-in') {
  const { userId } = state.toAuth()
}

verifyToken

Niedrigstufige Access-Token-Prüfung. jwtKey aus JWKS übergeben, um Netzwerkumlauf beim Kaltstart zu überspringen. Erwartete Fehler geben einen Result-Typ zurück, keine Ausnahme.

import { verifyToken } from '@xid-kit/backend'

const result = await verifyToken(token, {
  jwtKey: env.XID_JWKS_PUBLIC_KEY,
  issuer: 'https://xid.dev',
  audience: 'my-api',
})
if (!result.ok) return new Response('Unauthorized', { status: 401 })

verifyWebhook

Validiert Svix-artige Webhook-Signaturen (svix-id, svix-timestamp, svix-signature) mit einem Fünf-Minuten-Wiedergabefenster.

import { verifyWebhook } from '@xid-kit/backend'

const event = await verifyWebhook(request, {
  secret: env.XID_WEBHOOK_SECRET,
})

Exportierte API

Exportieren Art Zweck
authenticateRequest function Bearer-Token oder Session-Cookie extrahieren und prüfen; gibt diskriminierte Vereinigung RequestState zurück
verifyToken function Niedrigstufige Access-Token-Prüfung: signature, exp, nbf, iss, aud, azp
verifyWebhook function Svix-artiger HMAC-SHA256-Webhook-Signatur-Validierung mit 5-Minuten-Wiedergabefenster
toVerifyKeySet function JwtKey (JWK, JWKS oder CryptoKey) in VerifyKeySet zur Verifizierung umwandeln
JwksCache class Optionaler netzwerkbasierter JWKS-Cache mit konfigurierbarer TTL (Standard 3600 s); nur verwenden, wenn jwtKey nicht vorgeladen ist
AppError class Wird für nicht behebbare SDK-Fehler geworfen: fehlender JWT-Schlüssel, JWKS-Abruffehler, ungültige Optionen
BACKEND_ERROR_CODES as const Tupel Alle BackendErrorCode-Werte: missing_jwt_key, jwks_fetch_failed, invalid_options
PACKAGE Zeichenkettenkonstante Paketkennzeichner ‘@xid-kit/backend’

Typen

Typ Beschreibung
JwtKey Akzeptierte öffentliche Schlüsselformate: PublicJwk, Jwks oder { alg, publicKey: CryptoKey }
JwksCacheOptions Konstruktoroptionen für JwksCache: jwksUri, ttlSec, fetchFn
VerifyTokenOptions Optionen für verifyToken: jwtKey, issuer, audience, clockSkewSec, signal
VerifyTokenError Strukturierter Fehler bei fehlgeschlagener Token-Prüfung (erwarteter Fehler; wird nicht geworfen)
AuthenticateRequestOptions Optionen für authenticateRequest: jwtKey, issuer, audience, cookieName
RequestState Diskriminierte Vereinigung von SignedInState und SignedOutState
SignedInState Gültiges Sitzungs-Token gefunden; enthält toAuth() für den Zugriff auf Claims
SignedOutState Kein gültiges Token vorhanden; das Ursachenfeld gibt den Grund an
VerifyWebhookOptions Optionen für verifyWebhook: secret, tolerance (Wiedergabefenster in Sekunden)
WebhookVerifyError Strukturierter Fehler bei ungültiger oder wiederholter Webhook-Signatur
VerifiedWebhook Geparste und verifizierte Webhook-Nutzlast
BackendErrorCode Vereinigung der BACKEND_ERROR_CODES-Werte

Sicherheitsgrenzen

  • Verwendet ausschließlich öffentliche JWKS. Lädt niemals private Instanz-Signaturschlüssel.
  • Verifizierung verwendet Web Crypto über @xid-kit/crypto.
  • Erwartete Fehler geben Result-Typen zurück; unerwartete Fehler werfen AppError.
Navigation

Suchbegriff eingeben...

Mit den Pfeiltasten navigierenEingabetaste zum AuswählenEscape zum Schließen