---
title: "@xid-kit/nextjs"
description: "Middleware de Next.js, utilidades de servidor para App Router y Pages Router, más reexportaciones del SDK de React."
locale: "es"
---

> Documentation Index
> Fetch the relevant documentation index at: https://auth.sundays.ink/es/sdks/llms.txt
> Use this file to discover all available pages before exploring further.

# @xid-kit/nextjs

## Middleware

Estado del registro: UNPUBLISHED. Instala este SDK únicamente desde el checkout del código fuente del repositorio; no uses un registro de paquetes externo.

`xidMiddleware()` verifica un JWT Bearer o explícito de la aplicación en Edge Runtime. Para una sesión Core del mismo origen, intercambia la cookie opaca mediante `/v1/sessions/token`, verifica el JWT devuelto e inyecta el estado de autenticación en los encabezados de solicitud del servidor.

```ts
import { xidMiddleware } from '@xid-kit/nextjs'

export default xidMiddleware({
  jwtKey: JSON.parse(process.env.XID_JWKS_PUBLIC_KEY!),
  issuer: 'https://xid.dev',
  // This same-origin path must be routed to XID Core.
  sessionTokenExchange: { endpoint: '/v1/sessions/token' },
})

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

## Utilidades de servidor para App Router

```ts
import { auth, currentUser } from '@xid-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 '@xid-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 | Propósito |
| --- | --- | --- |
| `xidMiddleware` | function | Middleware de Edge Runtime: verifica JWT e inyecta encabezados de autenticación |
| `auth` | function | App Router: devuelve AuthObject con userId, orgId, orgRole |
| `getAuth` | function | Pages Router: devuelve AuthObject a partir de IncomingMessage |
| `currentUser` | function | App Router: recupera el objeto de usuario completo usando el contexto de autenticación de servidor |
| `xidClient` | function | Devuelve XidApiClient del lado del servidor vinculado a la autenticación de la solicitud actual |
| `XID_AUTH_HEADER` | constante de cadena | Nombre del encabezado para el estado de autenticación entre middleware y componentes de servidor |
| `XidMiddlewareOptions` | type | Opciones para xidMiddleware: jwtKey, issuer, jwtCookieName, sessionTokenExchange, protectedRoutes, publicRoutes |
| `XidServerClientOptions` | type | Opciones para xidClient |
| `AuthObject` | type | Estado autenticado: userId, orgId, orgRole, sessionId |
| `UnauthenticatedAuthObject` | type | Estado no autenticado con campos nulos |
| `AuthResult` | type | Unión de AuthObject y UnauthenticatedAuthObject |
| `PaginationParams` | type | Parámetros cursor y limit para llamadas de lista de la API de administración |
| `PaginatedResponse<T>` | type | Envoltorio de respuesta paginada |

## Reexportaciones

- Reexporta todos los componentes cliente y hooks de [@xid-kit/react](/es/sdks/react) mediante `export * from "@xid-kit/react"`.
- Reexportaciones de [@xid-kit/backend](/es/sdks/backend): `verifyToken`, `verifyWebhook`, `authenticateRequest`, `JwksCache`, `toVerifyKeySet`, `AppError`, `BACKEND_ERROR_CODES` y todos sus tipos asociados.
- Las utilidades de servidor nunca exponen secretos de firma a los paquetes del cliente.

Source: https://auth.sundays.ink/es/sdks/nextjs/index.mdx
