User Model
에 laravel-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 {
...
});
});