---
title: "@vonvon-kit/nextjs"
description: "Middleware Next.js, auxiliares de servidor para App Router e Pages Router, mais re-exports do React SDK."
locale: "pt-BR"
---

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

# @vonvon-kit/nextjs

## Middleware

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.

`vonvonMiddleware()` verifica um JWT Bearer ou explícito da aplicação no Edge Runtime. Para uma sessão Core da mesma origem, troca o cookie opaco por `/v1/sessions/token`, verifica o JWT retornado e injeta o estado de autenticação nos cabeçalhos da requisição de servidor.

```ts
import { vonvonMiddleware } from '@vonvon-kit/nextjs'

export default vonvonMiddleware({
  jwtKey: JSON.parse(process.env.VONVON_JWKS_PUBLIC_KEY!),
  issuer: 'https://vonvon.id',
  // This same-origin path must be routed to Vonvon Core.
  sessionTokenExchange: { endpoint: '/v1/sessions/token' },
})

export const config = {
  matcher: ['/dashboard(.*)', '/api/protected(.*)'],
}
```

## Auxiliares de servidor para App Router

```ts
import { auth, currentUser } from '@vonvon-kit/nextjs'

export default async function DashboardPage() {
  const { userId } = await auth()
  if (!userId) return null
  const user = await currentUser()
  return <p>Welcome {user?.email}</p>
}
```

## Pages Router

```ts
import { getAuth } from '@vonvon-kit/nextjs'

export const getServerSideProps = async (ctx) => {
  const { userId } = await getAuth(ctx.req)
  if (!userId) return { redirect: { destination: '/sign-in', permanent: false } }
  return { props: {} }
}
```

## API exportada

| Exportar | Tipo | Finalidade |
| --- | --- | --- |
| `vonvonMiddleware` | function | Middleware do Edge Runtime: verifica JWT e injeta cabeçalhos de autenticação |
| `auth` | function | App Router: retorna AuthObject com userId, orgId e orgRole |
| `getAuth` | function | Pages Router: retorna AuthObject a partir de IncomingMessage |
| `currentUser` | function | App Router: obtém o objeto de usuário completo usando o contexto de autenticação do servidor |
| `vonvonClient` | function | Retorna VonvonApiClient do lado do servidor vinculado à autenticação da requisição atual |
| `VONVON_AUTH_HEADER` | constante de string | Nome do cabeçalho para o estado de autenticação entre middleware e componentes de servidor |
| `VonvonMiddlewareOptions` | type | Opções para vonvonMiddleware: jwtKey, issuer, jwtCookieName, sessionTokenExchange, protectedRoutes, publicRoutes |
| `VonvonServerClientOptions` | type | Opções para vonvonClient |
| `AuthObject` | type | Estado autenticado: userId, orgId, orgRole, sessionId |
| `UnauthenticatedAuthObject` | type | Estado não autenticado com campos nulos |
| `AuthResult` | type | União de AuthObject e UnauthenticatedAuthObject |
| `PaginationParams` | type | Parâmetros cursor e limit para chamadas de listagem da Management API |
| `PaginatedResponse<T>` | type | Envelope de resposta paginada |

## Re-exports

- Faz re-export de todos os componentes cliente e hooks de [@vonvon-kit/react](/pt-br/sdks/react) via `export * from \"@vonvon-kit/react\"`.
- Re-exports de [@vonvon-kit/backend](/pt-br/sdks/backend): `verifyToken`, `verifyWebhook`, `authenticateRequest`, `JwksCache`, `toVerifyKeySet`, `AppError`, `BACKEND_ERROR_CODES` e todos os seus tipos associados.
- Os auxiliares de servidor nunca expõem segredos de assinatura aos bundles do cliente.

Source: https://vonvon.id/pt-br/sdks/nextjs/index.mdx
