المصادقة باستخدام Laravel Sanctum
أصدروا رموز API وتحققوا منها باستخدام Sanctum لعملاء SPA وتطبيقات الهاتف
المصادقة باستخدام Laravel Sanctum درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما هو Sanctum؟
يوفّر Laravel Sanctum نظام مصادقة بسيطًا قائمًا على الرموز المميزة لتطبيقات SPA وعملاء الأجهزة المحمولة. وهو يدعم رموز API والمصادقة القائمة على الجلسات لتطبيقات SPA الخاصة بالطرف الأول.
تثبيت Sanctum
ثبّت Sanctum وتهيئته.
$ composer require laravel/sanctum
$ php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$ php artisan migrateإصدار الرموز المميزة
أنشئ رمز وصول شخصيًا لمستخدم بعد التحقق من بيانات اعتماده.
<?php
Route::post("/login", function (Request $request) {
$request->validate(["email" => "required", "password" => "required"]);
$user = User::where("email", $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
throw ValidationException::withMessages([
"email" => ["The provided credentials are incorrect."],
]);
}
$token = $user->createToken("mobile-app")->plainTextToken;
return response()->json(["token" => $token]);
});السمة HasApiTokens
أضف السمة HasApiTokens إلى نموذج User لتمكين إدارة الرموز المميزة.
<?php
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}حماية المسارات
استخدم البرامج الوسيطة auth:sanctum لحماية مسارات API.
<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
Route::get("/user", fn(Request $r) => $r->user());
Route::apiResource("posts", PostController::class);
});إرسال الرمز المميز
يرسل العملاء الرمز المميز في ترويسة Authorization باعتباره رمز Bearer.
# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...نطاقات الرموز المميزة (الإمكانات)
أسند إمكانات إلى الرموز المميزة لتقييد الإجراءات التي يمكنها تنفيذها.
<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;
// Check ability:
if ($user->tokenCan("write:comments")) {
// allowed
}إبطال الرموز المميزة
احذف رمزًا مميزًا محددًا أو جميع الرموز المميزة (لتسجيل الخروج من جميع الأجهزة).
<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();
// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();انتهاء صلاحية الرموز المميزة
اضبط مدة انتهاء صلاحية الرمز المميز في config/sanctum.php. تُفحص الرموز المميزة مقابل last_used_at ونافذة انتهاء الصلاحية.
// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutesمصادقة SPA
بالنسبة إلى تطبيقات SPA الموجودة على النطاق نفسه، يمكن لـ Sanctum استخدام المصادقة القائمة على الجلسات بدلًا من الرموز المميزة. استدعِ /sanctum/csrf-cookie أولًا، ثم استخدم تسجيل الدخول المعتاد.
Sanctum مقابل Passport
Sanctum: رموز API بسيطة ومصادقة SPA. Passport: خادم OAuth2 متكامل يتضمن رموز التفويض وبيانات اعتماد العميل ورموز التحديث. ابدأ باستخدام Sanctum، وانتقل إلى Passport فقط إذا كنت تحتاج إلى OAuth2.
الملخص
يُصدر Sanctum رموز Bearer لمصادقة API. أضف HasApiTokens إلى نموذج User. احمِ المسارات باستخدام auth:sanctum. أبطِل الرموز المميزة عند تسجيل الخروج. استخدم الإمكانات لتحديد نطاق الأذونات.
تحقق سريع
كيف يضمّن العميل رمز Sanctum المميز في طلبات API؟
الأسئلة الشائعة
هل درس «المصادقة باستخدام Laravel Sanctum» مجاني؟
نعم — نص درس «المصادقة باستخدام Laravel Sanctum» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «المصادقة باستخدام Laravel Sanctum»؟
أصدروا رموز API وتحققوا منها باستخدام Sanctum لعملاء SPA وتطبيقات الهاتف تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «المصادقة باستخدام Laravel Sanctum»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مسارات API ووحدات تحكم الموارد
- موارد API واستجابات JSON
- المصادقة باستخدام Laravel Sanctum
- تحديد معدل الطلبات وإصدار API