---
title: "@xid-kit/nextjs"
description: "Next.js middleware、App Router および Pages Router サーバーヘルパー、React SDK の再エクスポート。"
locale: "ja"
---

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

# @xid-kit/nextjs

## ミドルウェア

`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 のユニオン |
| `PaginationParams` | type | Management API 一覧呼び出し用の cursor および limit パラメーター |
| `PaginatedResponse<T>` | type | ページネーション対応のレスポンスエンベロープ |

## 再エクスポート

- `export * from "@xid-kit/react"` を通じて [@xid-kit/react](/ja/sdks/react) のすべてのクライアントコンポーネントとフックを再エクスポートします。
- [@xid-kit/backend](/ja/sdks/backend) からの再エクスポート：`verifyToken`、`verifyWebhook`、`authenticateRequest`、`JwksCache`、`toVerifyKeySet`、`AppError`、`BACKEND_ERROR_CODES`、およびそれらに関連するすべての型。
- サーバーヘルパーは署名シークレットをクライアントバンドルに公開しません。

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