---
title: "@xid-kit/nuxt"
description: "Módulo Nuxt 3 com middleware de servidor H3/Nitro e composables Vueimportados automaticamente para apps SSR e full-stack."
locale: "pt-BR"
---

> Documentation Index
> Fetch the locale documentation index at: https://xid.dev/pt-br/llms.txt
> Use this file to discover all available pages before exploring further.

# @xid-kit/nuxt

## Estado

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](/pt-br/sdks/vue) eregistra um plugin somente para cliente que instala `XidPlugin`.

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

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

## Composables (importados automaticamente)

```vue
<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 manipulador de evento H3que verifica o JWT sem rede e grava em `event.context.xidAuth`.Coloque o arquivo em `server/middleware/` para que o Nitro oregistre como middleware global.

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

## Lendo autenticação em rotas do servidor

```ts
// 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, cookieName, 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.

Source: https://xid.dev/pt-br/sdks/nuxt/index.mdx
