Zum Inhalt springen

@xid-kit/nuxt

Nuxt-3-Modul mit H3/Nitro-Server-Middleware und automatisch importiertenVue-Composables für SSR- und Full-Stack-Anwendungen.

Als Markdown anzeigen

Zustand

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

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'],
  xid: {
    browser: {
      mode: 'oidc',
      issuer: 'https://xid.dev',
      clientId: 'client_abc123',
      redirectUri: 'https://app.example.com/auth/callback',
    },
  },
})

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-Handler zurück, der Bearer- oder explizite Anwendungs-JWTs prüft und event.context.xidAuth schreibt. Core-Sitzungen mit gleicher Origin werden über sessionTokenExchange konfiguriert; relative H3-v1-URLs benötigen zusätzlich eine vertrauenswürdige requestOrigin. Legen Sie die Datei in server/middleware/ ab, damit Nitro sie global 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',
  sessionTokenExchange: { endpoint: '/v1/sessions/token' },
  requestOrigin: process.env.XID_APP_ORIGIN!,
  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, jwtCookieName, sessionTokenExchange, requestOrigin, protectedRoutes, onUnauthenticated

Sicherheitshinweise

  • event.context.xidAuth ist 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.
Navigation

Suchbegriff eingeben...

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