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및 관련 모든 타입. - 서버 헬퍼는 서명 비밀값을 클라이언트 번들에 절대 노출하지 않습니다.