Dev to webs {Coding…}

ร บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 4: การจัดการ Authentication Middleware

🔹 เกริ่นนำ

Middleware ใน Laravel คือชั้นกลางที่ช่วยกรองหรือควบคุมการเข้าถึง route ต่าง ๆ หนึ่งใน middleware ที่ใช้บ่อยที่สุดคือ auth ซึ่งช่วยให้แน่ใจว่าผู้ใช้ได้เข้าสู่ระบบก่อนเข้าถึงหน้าที่ต้องการ เช่น Dashboard, Profile, หรือ Admin Panel

บทนี้จะสอนการใช้ middleware auth และ guest อย่างถูกต้อง และแนะนำการ redirect เมื่อไม่ได้รับสิทธิ์ พร้อมตัวอย่างการใช้งานจริงในไฟล์ route และ Controller

🔸 การใช้ Middleware auth กับ Route

// routes/web.php

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

    Route::get('/profile', [ProfileController::class, 'show']);
});

🔸 Middleware guest สำหรับ redirect ผู้ใช้ที่ login แล้ว

Route::middleware(['guest'])->group(function () {
    Route::get('/login', [LoginController::class, 'showForm']);
});

🔸 การตั้งค่า Redirect หากไม่ได้รับสิทธิ์

Laravel จะ redirect ไปที่ /login โดยอัตโนมัติ หากผู้ใช้ไม่ผ่าน auth middleware

หากต้องการเปลี่ยนพฤติกรรมนี้ สามารถกำหนดใน app/Http/Middleware/Authenticate.php

protected function redirectTo($request)
{
    if (! $request->expectsJson()) {
        return route('login');
    }
}

💡 ใช้ auth:sanctum หรือ auth:api หากทำงานกับ API