UNPKG

next

Version:

The React Framework

117 lines (90 loc) • 2.83 kB
--- title: unauthorized.js description: API reference for the unauthorized.js special file. related: links: - app/api-reference/functions/unauthorized version: experimental --- The **unauthorized** file renders UI when the [`unauthorized`](/docs/app/api-reference/functions/unauthorized) function is invoked. Before streaming starts, Next.js returns a `401` status code. After streaming starts, the status code remains `200` and the unauthorized UI renders in the response. Next.js injects a `<meta name="robots" content="noindex" />` tag in both cases. See [Status codes](/docs/app/api-reference/file-conventions/loading#status-codes) for details. ```tsx filename="app/unauthorized.tsx" switcher import Login from '@/app/components/Login' export default function Unauthorized() { return ( <main> <h1>401 - Unauthorized</h1> <p>Please log in to access this page.</p> <Login /> </main> ) } ``` ```jsx filename="app/unauthorized.js" switcher import Login from '@/app/components/Login' export default function Unauthorized() { return ( <main> <h1>401 - Unauthorized</h1> <p>Please log in to access this page.</p> <Login /> </main> ) } ``` ## Reference ### Props `unauthorized.js` components do not accept any props. ## Examples ### Displaying login UI to unauthenticated users You can use [`unauthorized`](/docs/app/api-reference/functions/unauthorized) function to render the `unauthorized.js` file with a login UI. ```tsx filename="app/dashboard/page.tsx" switcher import { verifySession } from '@/app/lib/dal' import { unauthorized } from 'next/navigation' export default async function DashboardPage() { const session = await verifySession() if (!session) { unauthorized() } return <div>Dashboard</div> } ``` ```jsx filename="app/dashboard/page.js" switcher import { verifySession } from '@/app/lib/dal' import { unauthorized } from 'next/navigation' export default async function DashboardPage() { const session = await verifySession() if (!session) { unauthorized() } return <div>Dashboard</div> } ``` ```tsx filename="app/unauthorized.tsx" switcher import Login from '@/app/components/Login' export default function UnauthorizedPage() { return ( <main> <h1>401 - Unauthorized</h1> <p>Please log in to access this page.</p> <Login /> </main> ) } ``` ```jsx filename="app/unauthorized.js" switcher import Login from '@/app/components/Login' export default function UnauthorizedPage() { return ( <main> <h1>401 - Unauthorized</h1> <p>Please log in to access this page.</p> <Login /> </main> ) } ``` ## Version History | Version | Changes | | --------- | ----------------------------- | | `v15.1.0` | `unauthorized.js` introduced. |