Laravel Sanctum Multi Auth 사용

김윤수·2023년 6월 29일
0
post-thumbnail

User Modellaravel-permission 같은 패키지를 사용하여 Role 처리하는게 더 간편하지만, 어쩔수 없이 Mutil-Auth를 사용해야 할 때 사용하시면 됩니다.

api 인증을 Sanctum으로 사용할 때 개인(User Model), 회사(Company Model)등 나누어서 인증을 처리할 때 사용하는 방법입니다.

# config/auth.php
'guards' => [
    'user' => [
        'driver'   => 'sanctum',
        'provider' => 'users',
    ],
    'company' => [
        'driver'   => 'sanctum',
        'provider' => 'companies',
    ],
    # 기존 
    'web' => [
        'driver'   => 'session',
        'provider' => 'users',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model'  => App\Models\User::class,
    ],
    'companies' => [
        'driver' => 'eloquent',
        'model'  => App\Models\Company::class,
    ],
],
# config/sanctum.php
'guard' => null, # 기본 guard를 설정하지 않는다
# routes/api.php
Route::group([
    'middleware' => 'auth:sanctum',
], static function (): void {
    ...

    // 사용자 영역
    Route::group([
        'middleware' => 'auth:user',
        'prefix'     => 'user',
    ], static function (): void {
        ...
    });

    // 회사 영역
    Route::group([
        'middleware' => 'auth:company',
        'prefix'     => 'company',
    ], static function (): void {
        ...
    });
});
profile
안녕하세요

0개의 댓글