コンテンツへ移動

@xid-kit/nextjs

Next.js middleware、App Router および Pages Router サーバーヘルパー、React SDK の再エクスポート。

Markdown で表示

ミドルウェア

xidMiddleware() は Edge Runtime で動作し、セッション JWT をネットワーク不要で検証し、サーバーコンポーネントとルートハンドラー向けに認証状態を下流のリクエストヘッダーに注入します。

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 サーバーヘルパー

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

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 のすべてのクライアントコンポーネントとフックを再エクスポートします。
  • @xid-kit/backend からの再エクスポート:verifyTokenverifyWebhookauthenticateRequestJwksCachetoVerifyKeySetAppErrorBACKEND_ERROR_CODES、およびそれらに関連するすべての型。
  • サーバーヘルパーは署名シークレットをクライアントバンドルに公開しません。
ナビゲーション

入力して検索...

矢印キーで移動Enter キーで選択Escape キーで閉じる