Ir para o conteúdo

@xid-kit/nuxt

Módulo Nuxt 3 com middleware de servidor H3/Nitro e composables Vueimportados automaticamente para apps SSR e full-stack.

Ver como Markdown

Estado

Status do registry: UNPUBLISHED. Instale este SDK somente a partir do checkout do código-fonte do repositório; não use um registry de pacotes externo.

O status do pacote é Pacote atual. O módulo Nuxt, middlewarede servidor H3/Nitro e composables importados automaticamente estãoimplementados. Uma ida e volta real com o IdP em infraestrutura deprodução ainda está pendente de verificação manual.

Configuração do módulo

Adicione @xid-kit/nuxt ao array modules. O móduloimporta automaticamente todos os composables de @xid-kit/vue eregistra um plugin somente para cliente que instala XidPlugin.

// 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 (importados automaticamente)

<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 (auth JWT)

createXidServerMiddleware retorna um handler H3 que verifica um JWT Bearer ou explícito da aplicação e grava em event.context.xidAuth. Configure sessões Core da mesma origem por sessionTokenExchange; URLs relativas do H3 v1 também exigem um requestOrigin confiável. Coloque o arquivo em server/middleware/ para o Nitro registrá-lo globalmente.

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

Lendo autenticação em rotas do 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 Finalidade
createXidServerMiddleware function Factory de event handler H3: verifica JWT, grava emevent.context.xidAuth, protege rotas
getXidAuth function Lê AuthResult de event.context.xidAuth em rotas e handlers do servidor
XID_AUTH_CONTEXT_KEY constante de string Chave de contexto usada para armazenar o resultado de autenticação(‘xidAuth’)
XidServerMiddlewareOptions type jwtKey, issuer, authorizedParties, jwtCookieName, sessionTokenExchange, requestOrigin, protectedRoutes, onUnauthenticated

Notas de segurança

  • event.context.xidAuth é apenas do lado do servidor e nunca éenviado ao navegador.
  • O middleware remove qualquer token de autenticação fornecido pelocliente e re-injeta apenas o resultado verificado.
  • Coloque o arquivo de middleware em server/middleware/ paragarantir que cubra todas as rotas como middleware global do Nitro.
Navegação

Digite para pesquisar...

Use as teclas de seta para navegarPressione Enter para selecionarPressione Escape para fechar