Zustand
Paketstatus: Aktuelles Paket. Das Nuxt-Modul, dieH3/Nitro-Server-Middleware und automatisch importierte Composables sindimplementiert. Ein echter IdP-Round-Trip auf Produktionsinfrastruktursteht noch manuell aus.
Modul-Einrichtung
Fügen Sie @xid-kit/nuxt dem modules-Array hinzu. Das Modulimportiert alle @xid-kit/vue-Composables automatisch undregistriert ein rein clientseitiges Plugin, das XidPlugininstalliert.
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@xid-kit/nuxt'],
runtimeConfig: {
public: {
xidApiUrl: '', // optional: omit for same-origin deployment
},
},
})Composables (automatisch importiert)
<script setup lang="ts">
// No import needed -- Nuxt auto-imports from @xid-kit/vue
const auth = useAuth()
const userRef = useUser()
const orgRef = useOrganization()
const sessionRef = useSession()
</script>
<template>
<div v-if="auth.isSignedIn">
Signed in as {{ auth.userId }}
<button @click="auth.signOut()">Sign out</button>
</div>
</template>Server-Middleware (JWT-Authentifizierung)
createXidServerMiddleware gibt einen H3-Event-Handler zurück, derdas JWT netzwerklos prüft und event.context.xidAuth schreibt. LegenSie die Datei in server/middleware/ ab, damit Nitro sie als globaleMiddleware registriert.
// server/middleware/xid.ts
import { createXidServerMiddleware } from '@xid-kit/nuxt'
export default createXidServerMiddleware({
jwtKey: JSON.parse(process.env.XID_JWKS_PUBLIC_KEY!),
issuer: 'https://acme.xid.dev',
protectedRoutes: ['/api/admin'],
})Auth in Server-Routen lesen
// server/routes/api/me.get.ts
import { getXidAuth } from '@xid-kit/nuxt'
export default defineEventHandler((event) => {
const auth = getXidAuth(event)
if (!auth.userId) {
throw createError({ statusCode: 401, message: 'Unauthorized' })
}
return { userId: auth.userId, orgId: auth.orgId }
})Exportierte API
| Exportieren | Art | Zweck |
|---|---|---|
createXidServerMiddleware |
function | H3-Event-Handler-Factory: prüft JWT, schreibt event.context.xidAuth,schützt Routen |
getXidAuth |
function | AuthResult aus event.context.xidAuth in Server-Routen und Handlern lesen |
XID_AUTH_CONTEXT_KEY |
Zeichenkettenkonstante | Kontextschlüssel zum Speichern des Auth-Ergebnisses (‘xidAuth’) |
XidServerMiddlewareOptions |
type | jwtKey, issuer, authorizedParties, cookieName, protectedRoutes,onUnauthenticated |
Sicherheitshinweise
event.context.xidAuthist ausschließlich serverseitig und wird niean den Browser gesendet.- Die Middleware entfernt alle vom Client bereitgestellten Auth-Tokens undinjiziert nur das verifizierte Ergebnis neu.
- Legen Sie die Middleware-Datei in
server/middleware/ab, damit sieals globale Nitro-Middleware alle Routen abdeckt.