Next.js • المستوى الثالث • الدرس 3
العودة لفهرس المستوىالبرمجيات الوسيطة والحماية (Middleware)
أهداف الدرس العلمية
- إنشاء ملف
middleware.jsلمعالجة الطلبات قبل وصولها للصفحة. - حماية اللوحات والتأكد من تسجيل الدخول قبل العرض بـ
NextResponse.redirect(). - استخدام
matcherلتحديد المسارات المحمية بدقة. - فهم دور Edge Runtime في سرعة الاستجابة والأمان.
1. قوة الـ Middleware
تنفذ Middleware على حافة الشبكة (Edge) لمنح حماية واستجابة فائقة للتحقق من هوية الزوار قبل استهلاك أي موارد من الخادم.
javascript
export function middleware(request) {
const token = request.cookies.get('auth');
if (!token && request.nextUrl.pathname.startsWith('/dashboard')) {
return NextResponse.redirect(new URL('/login', request.url));
}
return NextResponse.next();
}
export const config = {
matcher: '/dashboard/:path*',
};2. متى يُنفّذ الـ Middleware؟
✅ ينفذ قبل
- • تحميل الصفحة
- • جلب البيانات
- • تنفيذ Route Handler
🎯 استخداماته
- • حماية المسارات
- • إعادة التوجيه (Redirects)
- • تعديل الـ Headers
التطبيق العملي المباشر
تحدي الدرس الثالث: توسيع نطاق الحماية
قم بالتعديل على الكود في المحرر أدناه:
- أضف مسار
/adminإلى قائمة المسارات المحمية. - عدّل
matcherليصبح مصفوفة تحتوي على'/dashboard/:path*'و'/admin/:path*'. - أضف زر
/adminفي المحاكي للتبديل بين المسارات. - عدّل مصفوفة
protectedPathsلتشمل'/admin'.
⏳ جارٍ تحميل المحرر التفاعلي...