콘텐츠로 이동

함수: forbidden

Source URL: https://nextjs.org/docs/app/api-reference/functions/forbidden

Copy page

이 기능은 현재 실험 단계이며 변경될 수 있으므로, 프로덕션 환경에서는 권장되지 않습니다. 테스트해 보고 GitHub에서 피드백을 공유해주세요.

마지막 업데이트 2026년 2월 20일

forbidden 함수는 Next.js 403 오류 페이지를 렌더링하는 오류를 발생시킵니다. 애플리케이션에서 인증 오류를 처리할 때 유용합니다. forbidden.js 파일을 사용해 UI를 커스터마이즈할 수 있습니다.

forbidden을 사용하려면 next.config.js 파일에서 실험적 구성 옵션인 authInterrupts를 활성화하세요:

next.config.ts

JavaScriptTypeScript

import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
authInterrupts: true,
},
}
export default nextConfig

forbiddenServer Components, Server Functions, Route Handlers에서 호출할 수 있습니다.

app/auth/page.tsx

JavaScriptTypeScript

import { verifySession } from '@/app/lib/dal'
import { forbidden } from 'next/navigation'
export default async function AdminPage() {
const session = await verifySession()
// Check if the user has the 'admin' role
if (session.role !== 'admin') {
forbidden()
}
// Render the admin page for authorized users
return <></>
}
  • forbidden 함수는 root layout에서 호출할 수 없습니다.

forbidden을 사용하면 사용자 역할에 따라 특정 라우트 접근을 제한할 수 있습니다. 이는 인증되었지만 필요한 권한이 없는 사용자가 해당 라우트에 접근하지 못하도록 보장합니다.

app/admin/page.tsx

JavaScriptTypeScript

import { verifySession } from '@/app/lib/dal'
import { forbidden } from 'next/navigation'
export default async function AdminPage() {
const session = await verifySession()
// Check if the user has the 'admin' role
if (session.role !== 'admin') {
forbidden()
}
// Render the admin page for authorized users
return (
<main>
<h1>Admin Dashboard</h1>
<p>Welcome, {session.user.name}!</p>
</main>
)
}

Server Actions에서 변이를 구현할 때 forbidden을 사용하면 특정 역할을 가진 사용자만 민감한 데이터를 업데이트하도록 제한할 수 있습니다.

app/actions/update-role.ts

JavaScriptTypeScript

'use server'
import { verifySession } from '@/app/lib/dal'
import { forbidden } from 'next/navigation'
import db from '@/app/lib/db'
export async function updateRole(formData: FormData) {
const session = await verifySession()
// Ensure only admins can update roles
if (session.role !== 'admin') {
forbidden()
}
// Perform the role update for authorized users
// ...
}
VersionChanges
v15.1.0forbidden 도입.

  • forbidden.js
    • 의 특별 파일에 대한 API 레퍼런스입니다.

supported.

Send