콘텐츠로 건너뛰기

@xid-kit/nextjs

Next.js middleware, App Router 및 Pages Router 서버 헬퍼, React SDK 재내보내기 포함.

Markdown으로 보기

Middleware

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의 union
PaginationParams type 관리 API 목록 호출을 위한 cursor 및 limit 파라미터
PaginatedResponse<T> type 페이지네이션 응답 envelope

재내보내기

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

입력하여 검색...

화살표 키로 이동Enter 키로 선택Escape 키로 닫기