بناء واجهات التطبيقات (APIs) وتأمينها باستخدام Sanctum

في عصرنا الحالي، لم يعد الويب مقتصرًا على المتصفحات فقط. تحتاج تطبيقاتك للتواصل مع تطبيقات الموبايل (Android/iOS) أو تطبيقات الصفحة الواحدة (SPA) مثل Vue و React. هنا يأتي دور **API**. يوفر Laravel بيئة متطورة لبناء واجهات برمجية تعيد البيانات بصيغة JSON، كما يقدم حزمة **Sanctum** الرسمية، وهي أداة خفيفة وقوية لتأمين هذه الواجهات باستخدام الـ TOKENS المنبثقة.

1. تعريف مسارات الـ API

في Laravel 11، يتم تعريف مسارات الـ API داخل ملف routes/api.php. الفرق الأساسي هو أن هذه المسارات لا تستخدم الجلسات (Sessions) بل تعتمد على الـ TOKENS، ويتم إضافة البادئة /api لجميع روابطها تلقائياً.

// routes/api.php
Route::get('/posts', function () {
    return Post::all(); // سيعيد البيانات بصيغة JSON تلقائياً
});

2. تأمين الـ API باستخدام Sanctum

لحماية روابط معينة وجعلها متاحة فقط للمستخدمين بحوزتهم Token صحيح، نستخدم حزمة Sanctum. لتثبيتها:

php artisan install:api

بعد الإعداد، يمكنك إصدار Token للمستخدم عند تسجيل الدخول:

$token = $user->createToken('auth_token')->plainTextToken;
return response()->json(['access_token' => $token]);

3. حماية المسارات (Sanctum Middleware)

الآن يمكنك حماية أي رابط ليبدو هكذا:

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

أسئلة شائعة حول الـ API

**Sanctum** خفيف ومثالي لمعظم المواقع والتطبيقات البسيطة والمتوسطة. أما **Passport** فهو تطبيق كامل لبروتوكول OAuth2، ويستخدم للمشاريع الضخمة التي تتيح لجهات خارجية الوصول لبياناتها (مثل تسجيل الدخول بفيسبوك أو جوجل).

يوفر لارافيل ميزة **Eloquent Resources** التي تسمح لك بفلترة الحقول التي تظهر في الـ JSON وتغيير أسمائها لتناسب تطبيق الموبايل دون تغيير قاعدة البيانات.
الدرس القادم

الاختبارات الآتية (Testing)

لا تعتمد على التجربة اليدوية للموقع. سنتعلم كيف نكتب أكواداً تقوم باختبار الموقع تلقائياً للتأكد من أن كل شيء يعمل كما يجب قبل النشر.

تعلم الاختبارات التلقائية
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن