Saltar al contenido

@xid-kit/nuxt

Módulo Nuxt 3 con middleware de servidor H3/Nitro y composables Vue importados automáticamente para apps SSR y full-stack.

Ver como Markdown

Estado

El estado del paquete es Paquete actual. El módulo Nuxt, el middleware de servidor H3/Nitro y los composables importados automáticamente están implementados. Una prueba de ida y vuelta real contra un IdP en infraestructura de producción está pendiente de verificación manual.

Configuración del módulo

Añade @xid-kit/nuxt al array modules. El módulo importa automáticamente todos los composables de @xid-kit/vue y registra un plugin solo de cliente que instala XidPlugin.

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@xid-kit/nuxt'],

  runtimeConfig: {
    public: {
      xidApiUrl: '', // optional: omit for same-origin deployment
    },
  },
})

Composables (importados automáticamente)

<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>

Middleware de servidor (autenticación JWT)

createXidServerMiddleware devuelve un manejador de eventos H3 que verifica el JWT sin llamadas de red y escribe event.context.xidAuth. Coloca el archivo en server/middleware/ para que Nitro lo registre como middleware global.

// 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'],
})

Lectura de autenticación en rutas del servidor

// 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 }
})

API exportada

Exportar Tipo Propósito
createXidServerMiddleware function Fábrica de manejadores de eventos H3: verifica el JWT, escribe event.context.xidAuth y protege rutas
getXidAuth function Lee AuthResult de event.context.xidAuth en rutas y manejadores del servidor
XID_AUTH_CONTEXT_KEY constante de cadena Clave de contexto usada para almacenar el resultado de autenticación (‘xidAuth’)
XidServerMiddlewareOptions type jwtKey, issuer, authorizedParties, cookieName, protectedRoutes, onUnauthenticated

Notas de seguridad

  • event.context.xidAuth es exclusivo del servidor y nunca se envía al navegador.
  • El middleware elimina cualquier token de autenticación proporcionado por el cliente y solo reinyecta el resultado verificado.
  • Coloca el archivo de middleware en server/middleware/ para garantizar que cubra todas las rutas como middleware global de Nitro.
Navegación

Escribe para buscar...

Usa las flechas para navegarPulsa Intro para seleccionarPulsa Escape para cerrar