unauthorized.tsx در Next.js — نمایش رابط کاربری سفارشی برای خطای ۴۰۱

فایل unauthorized.tsx در Next.js یک ویژگی آزمایشی است که هنگام فراخوانی تابع unauthorized() در فرآیند احراز هویت، رابط کاربری سفارشی را نمایش می‌دهد. این فایل به شما امکان می‌دهد پیام ورود یا هشدار عدم دسترسی را برای کاربران غیرمجاز نمایش دهید و به‌صورت خودکار کد وضعیت ۴۰۱ را برمی‌گرداند. این مقاله نحوهٔ استفاده از unauthorized.tsx برای بهبود تجربه کاربری در کنترل دسترسی را آموزش می‌دهد.

unauthorized.tsx401 errorauthenticationogin UI

~2 دقیقه مطالعه • بروزرسانی ۷ آبان ۱۴۰۴

۱. unauthorized.tsx چیست؟


فایل unauthorized.tsx در Next.js برای نمایش رابط کاربری سفارشی هنگام فراخوانی تابع unauthorized() استفاده می‌شود. این فایل برای نمایش پیام‌های ورود یا هشدار عدم دسترسی به کاربران غیرمجاز کاربرد دارد.


۲. رفتار و کد وضعیت


  • با فراخوانی unauthorized()، فایل unauthorized.tsx رندر می‌شود
  • پاسخ HTTP به‌صورت خودکار شامل کد وضعیت ۴۰۱ Unauthorized خواهد بود
  • این ویژگی در حال حاضر آزمایشی است و برای محیط production توصیه نمی‌شود

۳. تعریف unauthorized.tsx


فایلی در مسیر app/unauthorized.tsx ایجاد کنید و یک کامپوننت React را به‌صورت پیش‌فرض خروجی دهید. این کامپوننت نباید هیچ prop دریافت کند:

// app/unauthorized.tsx
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>
  )
}

۴. فراخوانی unauthorized.tsx


در یک Server Component از تابع unauthorized() برای هدایت کاربران غیرمجاز استفاده کنید:

// app/dashboard/page.tsx
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>
}

۵. موارد استفاده


  • نمایش فرم ورود برای مسیرهای محافظت‌شده
  • شخصی‌سازی تجربه خطای ۴۰۱
  • بهبود تجربه کاربری برای کاربران غیرمجاز

۶. محدودیت‌ها


  • کامپوننت unauthorized.tsx هیچ prop دریافت نمی‌کند
  • ویژگی آزمایشی است و ممکن است در نسخه‌های آینده تغییر کند
  • برای استفاده در production باید منطق جایگزین در نظر گرفته شود

جمع‌بندی


فایل unauthorized.tsx در Next.js راهی ساده و مؤثر برای مدیریت دسترسی کاربران غیرمجاز است. با نمایش رابط کاربری سفارشی و بازگرداندن کد وضعیت ۴۰۱، می‌توانید تجربه‌ای حرفه‌ای و قابل کنترل برای کاربران بسازید — حتی اگر هنوز وارد نشده باشند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی