Laravel Tip : Add Two Authentication in Laravel

Hòa Nguyễn Coder

Published in Web Developer · Đã đăng vào tháng 2 10, 2025 3:09 PM

Laravel Tip💡 : Add Guards JWT 
Chia sẻ nhỏ, trường hợp nếu project của bạn có 2 phương thức đăng nhập khác nhau:
1: Có thể dùng Form Login
2: Dùng JWT để login

Chúng ta chỉnh sửa cấu hình trong config/auth.php của project laravel. hiện tại mình đang dùng Laravel 10, muốn cấu hình auth với JWT(Json Web Token)



    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
        ],
    ],


Chúng ta cần lưu ý chổ setup config như trên, bạn xem ở chổ default nó dùng mặc định web driver (session), còn guard add thêm api driver (jwt)

À nếu nhiều phương thức đăng nhập, chúng ta thử tạo nhiều Guards và Provider :)) mình chưa thử, để có thời gian,  mình tìm hiểu tiếp😉😃

VD:


'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
    'admin' => [ // ➕ Thêm guard admin
        'driver' => 'session',
        'provider' => 'admins', // Sử dụng provider riêng cho admin
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    'admins' => [ // ➕ Thêm provider riêng cho admin
        'driver' => 'eloquent',
        'model' => App\Models\Admin::class, // Model Admin
    ],
],

Ta sẽ gọi nó như sau:


// gọi trong controller,...
if (Auth::guard('admin')->check()) {
    // Admin đã đăng nhập
}

$admin = Auth::guard('admin')->user();

// hoặc sử dụng gọi cùng với middleware

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

Có sai gì anh em thông cảm, chia sẻ lại mình, tìm hiểu về nó nhé! 😃

Nếu bạn thấy đem lại kiến thức bổ ích, hãy Click xem quảng cáo trên trang website của mình nhé! 🚀