Zum Inhalt springen

@vonvon-kit/core

Browser-Client für Sitzungszustand, kurzlebige JWT-Zugriffe und Management-API-Helfer.

Als Markdown anzeigen

Installieren und konfigurieren

Registry-Status: UNPUBLISHED. Installieren Sie dieses SDK nur aus einem Checkout des Repository-Quellcodes; verwenden Sie keine externe Paket-Registry.

Konfigurieren Sie für eine Entwickler-App auf einem anderen Ursprung mode: 'oidc' mit issuer, clientId und einer exakten redirectUri. Verwenden Sie den same-origin-Modus nur, wenn die Anwendung die Core-Authentifizierungsendpunkte auf ihrem exakten Ursprung routet. Vonvon besitzt keine publishable-key-Anmeldedaten.

import { VonvonClient } from '@vonvon-kit/core'

const vonvon = new VonvonClient({
  mode: 'oidc',
  issuer: 'https://vonvon.id',
  clientId: 'client_abc123',
  redirectUri: 'https://app.example.com/auth/callback',
})

const authorization = await vonvon.createAuthorizationUrl({ returnUrl: '/dashboard' })
if (!authorization.ok) throw new Error(authorization.error.message)
window.location.assign(authorization.value)

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

Management-API-Hilfsfunktionen sind nur serverseitig oder bei exakt gleichem Ursprung verfügbar. Erstellen Sie auf dem Server einen separaten Client mit sk_live_* oder sk_test_*; der OIDC-Browsermodus lehnt diese Vorgänge ab.

const management = new VonvonClient({
  apiUrl: 'https://vonvon.id',
  secretKey: process.env.VONVON_SECRET_KEY,
})

const keys = await management.listApiKeys()
if (!keys.ok) throw new Error(keys.error.message)

const created = await management.createApiKey({ name: 'CI deploy', scopes: ['read'] })
if (!created.ok) throw new Error(created.error.message)

const revoked = await management.revokeApiKey({ id: created.value.id })
if (!revoked.ok) throw new Error(revoked.error.message)

Exportierte API

Exportieren Art Zweck
VonvonClient class Oberster Browser-Client: load, signIn, getToken, setActiveOrganization, signOut und Management-API-Helfer
VonvonStore class Framework-agnostischer reaktiver Speicher; mit useSyncExternalStore in Framework-Bindungen abonnieren
TokenManager class Kurzlebiger JWT-Cache und geplante Aktualisierung (erweiterte Nutzung und Tests)
VonvonApiClient class HTTP-Client für /v1/me und Token-Endpunkte
VonvonNetworkError class Wird bei Transportfehlern geworfen: Netzwerkfehler, Nicht-JSON-Antwort, 5xx ohne strukturierten Body
makeVonvonError function Einen strukturierten VonvonError für lokale Validierungsfehler ohne Netzwerkumlauf erstellen
isVonvonErrorShape function Typwächter: prüft, ob ein unbekannter Wert der VonvonError-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 ‘@vonvon-kit/core’

Typen

Typ Beschreibung
VonvonUser Schreibgeschützte Ansicht des authentifizierten Benutzers (keine Geheimnisse oder Hashes)
VonvonOrganization Öffentliche Organisationsansicht
VonvonOrganizationMembership Benutzermitgliedschaft in einer Organisation mit Rolle und Berechtigungen
VonvonSession Sitzungsansicht mit Status, Ablauf und aktiver Organisation
VonvonApiKey API-Schlüssel ohne Geheimnis (Listenansicht)
VonvonApiKeyWithSecret API-Schlüssel wird einmalig bei der Erstellung zurückgegeben; enthält das Schlüsselfeld
VonvonPage<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
VonvonState Vollständiger SDK-Zustandsschnappschuss, abonniert von VonvonStore
VonvonStateListener Callback-Typ für Zustandsänderungs-Listener
Unsubscribe Rückgabetyp von VonvonStore.subscribe
GetTokenOptions Optionen für getToken: skipCache, leewaySeconds, signal
VonvonClientOptions Diskriminierte VonvonClient-Konstruktoroptionen: same-origin akzeptiert apiUrl, secretKey, fetcher und now; oidc erfordert issuer, clientId und redirectUri.
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: @vonvon-kit/react. Server-Verifizierung: @vonvon-kit/backend.

Navigation

Suchbegriff eingeben...

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