コンテンツへ移動

@vonvon-kit/nextjs

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

Markdown で表示

ミドルウェア

Registry 状態: UNPUBLISHED。この SDK はリポジトリのソース checkout からのみインストールし、外部 package registry は使用しないでください。

vonvonMiddleware() は Edge Runtime で Bearer または明示的なアプリケーション JWT を検証します。同一オリジンの Core セッションでは、opaque Cookie を /v1/sessions/token で交換し、返された JWT を検証して認証状態を下流のサーバーリクエストヘッダーに注入します。

import { vonvonMiddleware } from '@vonvon-kit/nextjs'

export default vonvonMiddleware({
  jwtKey: JSON.parse(process.env.VONVON_JWKS_PUBLIC_KEY!),
  issuer: 'https://vonvon.id',
  // This same-origin path must be routed to Vonvon Core.
  sessionTokenExchange: { endpoint: '/v1/sessions/token' },
})

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

App Router サーバーヘルパー

import { auth, currentUser } from '@vonvon-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 '@vonvon-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

エクスポート 種別 目的
vonvonMiddleware function Edge Runtime middleware:JWT を検証し認証ヘッダーを注入します
auth function App Router:userId、orgId、orgRole を含む AuthObject を返します
getAuth function Pages Router:IncomingMessage から AuthObject を返します
currentUser function App Router:サーバー認証コンテキストを使って完全なユーザーオブジェクトを取得します
vonvonClient function 現在のリクエスト認証にバインドされたサーバー側 VonvonApiClient を返します
VONVON_AUTH_HEADER 文字列定数 middleware とサーバーコンポーネント間の認証状態を表すヘッダー名
VonvonMiddlewareOptions type vonvonMiddleware のオプション:jwtKey、issuer、jwtCookieName、sessionTokenExchange、protectedRoutes、publicRoutes
VonvonServerClientOptions type vonvonClient のオプション
AuthObject type 認証済み状態:userId、orgId、orgRole、sessionId
UnauthenticatedAuthObject type フィールドが null の未認証状態
AuthResult type AuthObject と UnauthenticatedAuthObject のユニオン
PaginationParams type Management API 一覧呼び出し用の cursor および limit パラメーター
PaginatedResponse<T> type ページネーション対応のレスポンスエンベロープ

再エクスポート

  • export * from \"@vonvon-kit/react\" を通じて @vonvon-kit/react のすべてのクライアントコンポーネントとフックを再エクスポートします。
  • @vonvon-kit/backend からの再エクスポート:verifyTokenverifyWebhookauthenticateRequestJwksCachetoVerifyKeySetAppErrorBACKEND_ERROR_CODES、およびそれらに関連するすべての型。
  • サーバーヘルパーは署名シークレットをクライアントバンドルに公開しません。
ナビゲーション

入力して検索...

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