Sunday, 3 November 2024

DAY10 Protect Path Dashboard

31 Oct 2024
12
luminox watches

  1. หลังจากที่เราได้สร้าง admin/agent /user dashboard กันไปแล้วตอนี้เมื่อเราลอง login ไม่ว่า account ไหนก็จะสามารถเข้า dashboard ได้ดังนั้นเราก็ต้องมาจำกัดสิทธิ์ในการใช้งานเพื่อไม่ให้คนที่ไม่มี role มีสิทธิ์เข้าถึง Dashboard นั้นได โดย เริ่มต้นเราใช้คำสั่ง php artisan make:middleware Role
create middleware role

create middleware role

2. หลังจากที่สร้างเสร็จแล้วก็จะมี file Role.php อยู่ใน app>http>Middleware

after create role in middleware

3. จากนั้นก็เพิ่มเงื่อนไขเข้าไปเพื่อเช็ค role ในไฟล์ Role.php

{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next,$role): Response
    {
        if ($request->user()->role !==$role){
            return redirect(‘dashboard’);
        }
        return $next($request);
    }
}
เพิ่มเงื่อนไขเข้าไปเพื่อเช็ค role ในไฟล์ Role

เพิ่มเงื่อนไขเข้าไปเพื่อเช็ค role ในไฟล์ Role

4. แก้ไขให้ route เช็ค authen
Route::middleware([‘auth’,’role:admin’])->group(function(){
    Route::get(‘/admin/dashboard’, [AdminController::class, ‘AdminDashboard’])->name(‘admin.dashboard’);
});
จากนั้นก็ทำแบบเดียวกันกับ agent dashboard ด้วย
Route::middleware([‘auth’,’role:agent’])->group(function(){
    Route::get(‘/agent/dashboard’, [AgentController::class, ‘AgentDashboard’])->name(‘agent.dashboard’);
}); //end group agent
เพิ่มเงื่อนไขให้เช็ค role ใน web-php

เพิ่มเงื่อนไขให้เช็ค role ใน web-php

5. เพิ่ม middleware
$middleware->alias([‘role’ => App\Http\Middleware\Role::class]);
6. จากนั้นก็ทดสอบโดยการเอา user@gmail.com มาเทสแล้วลองเข้า admin dashboard ดูก็จะ redirect กลับไปที่ dashboard
test-user-access-admin-dashboard

test-user-access-admin-dashboard

Thanat Sirikitphattana

แบ่งปันกัน เราอยู่กันไม่เกิน 100 ปีหรอกครับ
สุดท้ายก็ทิ้งไว้ที่โลก จะคงเหลือไว้แต่คุณงามความดีที่ให้ระลึกถึงกันครับ

Follow Us / Thanat Sirikitphattana
นายช่างโยธา ศูนย์ก่อสร้างและบูรณะถนน 3 ส่วนก่อสร้างและบูรณะ 2 สำนักการโยธา