---
title: "@vonvon-kit/nextjs"
description: "Middleware Next.js, assistants serveur App Router et Pages Router, plus les réexportations du SDK React."
locale: "fr"
---

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

# @vonvon-kit/nextjs

## Middleware

Statut du registre : UNPUBLISHED. Installez ce SDK uniquement depuis un checkout du code source du dépôt ; n'utilisez pas de registre de paquets externe.

`vonvonMiddleware()` vérifie un JWT Bearer ou applicatif explicite dans l'Edge Runtime. Pour une session Core de même origine, il échange le cookie opaque via `/v1/sessions/token`, vérifie le JWT retourné et injecte l'état d'authentification dans les en-têtes serveur en aval.

```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(.*)'],
}
```

## Assistants serveur 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 exportée

| Exporter | Type | Objectif |
| --- | --- | --- |
| `vonvonMiddleware` | function | Middleware Edge Runtime : vérifie le JWT, injecte les en-têtes d'authentification |
| `auth` | function | App Router : retourne un AuthObject avec userId, orgId, orgRole |
| `getAuth` | function | Pages Router : retourne un AuthObject depuis IncomingMessage |
| `currentUser` | function | App Router : récupère l'objet utilisateur complet via le contexte d'authentification serveur |
| `vonvonClient` | function | Retourne un VonvonApiClient côté serveur lié à l'authentification de la requête actuelle |
| `VONVON_AUTH_HEADER` | constante string | Nom d'en-tête pour l'état d'authentification entre middleware et composants serveur |
| `VonvonMiddlewareOptions` | type | Options pour vonvonMiddleware : jwtKey, issuer, jwtCookieName, sessionTokenExchange, protectedRoutes, publicRoutes |
| `VonvonServerClientOptions` | type | Options pour vonvonClient |
| `AuthObject` | type | État authentifié : userId, orgId, orgRole, sessionId |
| `UnauthenticatedAuthObject` | type | État non authentifié avec champs null |
| `AuthResult` | type | Union de AuthObject et UnauthenticatedAuthObject |
| `PaginationParams` | type | Paramètres cursor et limit pour les appels de liste de l'API de gestion |
| `PaginatedResponse<T>` | type | Enveloppe de réponse paginée |

## Réexportations

- Réexporte tous les composants client et hooks [@vonvon-kit/react](/fr/sdks/react) via `export * from \"@vonvon-kit/react\"`.
- Réexportations depuis [@vonvon-kit/backend](/fr/sdks/backend) : `verifyToken`, `verifyWebhook`, `authenticateRequest`, `JwksCache`, `toVerifyKeySet`, `AppError`, `BACKEND_ERROR_CODES` et tous leurs types associés.
- Les assistants serveur n'exposent jamais les secrets de signature aux bundles client.

Source: https://vonvon.id/fr/sdks/nextjs/index.mdx
