I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟

ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟ كتير مننا كمبرمجين بيعتمدوا بشكل كلي على حزم جاهزة زي Laravel Breeze أو Jetstream، وده شيء عظيم

ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟
Reading Count: 304

ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟

كتير مننا كمبرمجين بيعتمدوا بشكل كلي على حزم جاهزة زي Laravel Breeze أو Jetstream، وده شيء عظيم وبيوفر وقت. لكن، هل سألت نفسك قبل كدة: "هو ايه اللي بيحصل تحت الكبوت؟" لو حبيت تعمل نظام صلاحيات (Authorization) مخصص أو تحكم كامل في الـ Session، هتلاقي نفسك واقف في حتة ضلمة لو مش فاهم الأساسيات. النهاردة هنشرح إزاي تبني نظام دخول من الصفر في لارافيل (Laravel) بدون أي إضافات خارجية، عشان تكون فاهم كل سطر كود بتكتبه.

ليه محتاج تبني نظام Authentication يدوي؟

مش دايماً الحزم الجاهزة بتناسب متطلبات العميل. أحياناً بتحتاج دورة حياة (Lifecycle) معينة للمستخدم، أو ربط مع قاعدة بيانات خارجية، أو نظام تحقق (Verification) مخصص. فهمك للـ Authentication الأساسي هيخليك مبرمج أقوى بكتير، وهيعلمك إزاي لارافيل بيتعامل مع التوكينز (Tokens) والسيشن (Session).

الخطوة الأولى: تهيئة قاعدة البيانات والنموذج

أول حاجة محتاجينها هي جدول المستخدمين. لارافيل بييجي بجدول users جاهز، لكن خلينا نفترض إنك هتنشئ النظام يدوي. تأكد إن موديل الـ User بيعمل extend لكلاس Authenticatable عشان يقدر يتعامل مع نظام الدخول.


namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    protected $fillable = ['name', 'email', 'password'];
    protected $hidden = ['password', 'remember_token'];
}

في الـ Controller بتاعك، هنستخدم الـ Auth Facade. الميثود الأهم هنا هي attempt، واللي بتقوم بوظيفتين: التأكد من صحة البيانات، وإنشاء السيشن (Session) للمستخدم في حال كانت البيانات صحيحة.


public function login(Request $request)
{
    $credentials = $request->validate([
        'email' => ['required', 'email'],
        'password' => ['required'],
    ]);

    if (Auth::attempt($credentials)) {
        $request->session()->regenerate();
        return redirect()->intended('dashboard');
    }

    return back()->withErrors([
        'email' => 'البيانات دي مش مطابقة للسجلات عندنا.',
    ]);
}

الخطوة الثالثة: حماية المسارات (Middleware)

مش كفاية إننا نعمل تسجيل دخول، لازم نحمي الصفحات اللي المستخدم مش لازم يشوفها وهو "مش مسجل". هنا بيجي دور الـ Middleware. لارافيل بيوفر auth middleware جاهز، لكن فهم إزاي هو بيشتغل (إنه بيعمل Redirect للـ login route لو المستخدم مش مسجل) شيء جوهري.

تقدر تستخدمه في ملف الـ routes/web.php كدة:

Route::middleware(['auth'])->group(function () { Route::get('/dashboard', function () { return view('dashboard'); }); });

الخطوة الرابعة: التعامل مع الـ Logout

إنهاء الجلسة سهل جداً، كل اللي محتاجه إنك تنهي الـ Session وتمسح الـ Authentication state من الكوكيز (Cookies).


public function logout(Request $request)
{
    Auth::logout();
    $request->session()->invalidate();
    $request->session()->regenerateToken();
    return redirect('/');
}

نصيحة من أخ لمبرمج

يا بطل، الحزم الجاهزة (Packages) زي Breeze موجودة عشان تسرع شغلك، مش عشان تغنيك عن الفهم. جرب تبني نظام تسجيل دخول مرة واحدة بس بإيدك من الصفر، وهتلاقي نفسك بقيت بتشوف الكود بتاع لارافيل بنظرة تانية خالص. افهم إزاي الـ Guards بيشتغلوا، وازاي الـ Providers بيجيبوا البيانات، ولما تفهم دول، هتكون جاهز تتعامل مع أي تحدي أمني في مشاريعك الجاية.

بالتوفيق في رحلتك البرمجية، وخليك دايماً فضولي تجاه التفاصيل الصغيرة!


Share

Related posts

Aug 14, 2026 • 1 min read
Reading Count: 6
دليلك الشامل لاستخدام المعرفات الفريدة (UUIDs) كـ Primary Keys في لارافل إيلوكنت (Laravel Eloquent)

دليلك الشامل لاستخدام المعرفات الفريدة (UUIDs) كـ Primary Keys في لارافل إيلوكنت (Laravel Eloquent)...

Aug 14, 2026 • 1 min read
Reading Count: 6
إزاي تعمل Task Scheduling باحترافية في Laravel

يا هلا بيك يا باشمهندس في عالم البرمجة! لو انت شغال على مشروع ويب بلغة PHP وإطار العمل العظيم لاراكي...

Aug 14, 2026 • 1 min read
Reading Count: 7
أسرار الـ Custom Validation Rules في لارايفل (Laravel) لتنظيف الكود

التصنيف: Web Development, Tutorials أسرار الـ Custom Validation Rules في لارايفل (Laravel) لتنظيف ال...