---
title: "@xid-kit/nextjs"
description: "Next.js middleware, App Router 및 Pages Router 서버 헬퍼, React SDK 재내보내기 포함."
locale: "ko"
---

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

# @xid-kit/nextjs

## Middleware

`xidMiddleware()`는 Edge Runtime에서 실행되어 세션 JWT를 네트워크 호출 없이 검증하고, 서버 컴포넌트 및 라우트 핸들러를 위한 다운스트림 요청 헤더에 인증 상태를 주입합니다.

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

export default xidMiddleware({
  jwtKey: process.env.XID_JWKS_PUBLIC_KEY!,
  issuer: 'https://xid.dev',
})

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

## 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

| 내보내기 | 종류 | 목적 |
| --- | --- | --- |
| `xidMiddleware` | function | Edge Runtime middleware: JWT를 검증하고 인증 헤더를 주입합니다 |
| `auth` | function | App Router: userId, orgId, orgRole이 포함된 AuthObject를 반환합니다 |
| `getAuth` | function | Pages Router: IncomingMessage에서 AuthObject를 반환합니다 |
| `currentUser` | function | App Router: 서버 인증 컨텍스트로 전체 사용자 객체를 가져옵니다 |
| `xidClient` | function | 현재 요청 인증에 바인딩된 서버 사이드 XidApiClient를 반환합니다 |
| `XID_AUTH_HEADER` | 문자열 상수 | middleware와 서버 컴포넌트 간 인증 상태를 위한 헤더 이름 |
| `XidMiddlewareOptions` | type | xidMiddleware 옵션: jwtKey, issuer, publicRoutes, ignoredRoutes |
| `XidServerClientOptions` | type | xidClient 옵션 |
| `AuthObject` | type | 인증된 상태: userId, orgId, orgRole, sessionId |
| `UnauthenticatedAuthObject` | type | null 필드를 갖는 미인증 상태 |
| `AuthResult` | type | AuthObject와 UnauthenticatedAuthObject의 union |
| `PaginationParams` | type | 관리 API 목록 호출을 위한 cursor 및 limit 파라미터 |
| `PaginatedResponse<T>` | type | 페이지네이션 응답 envelope |

## 재내보내기

- `export * from "@xid-kit/react"`를 통해 [@xid-kit/react](/ko/sdks/react)의 모든 클라이언트 컴포넌트와 hook을 재내보냅니다.
- [@xid-kit/backend](/ko/sdks/backend)에서 재내보내기: `verifyToken`, `verifyWebhook`, `authenticateRequest`, `JwksCache`, `toVerifyKeySet`, `AppError`, `BACKEND_ERROR_CODES` 및 관련 모든 타입.
- 서버 헬퍼는 서명 비밀값을 클라이언트 번들에 절대 노출하지 않습니다.

Source: https://xid.dev/ko/sdks/nextjs/index.mdx
