Laravel은 웹 애플리케이션의 개발 및 유지 관리를 단순화하는 많은 강력한 기능과 도구를 제공하는 인기 있는 PHP 웹 개발 프레임워크입니다. Laravel Sanctum은 무단 액세스로부터 API 엔드포인트를 쉽게 보호하기 위해 API 인증 및 권한 부여 기능을 제공하는 Laravel 프레임워크용 플러그인입니다.
이 글에서는 Laravel Sanctum을 사용하여 API 인증 및 권한 부여를 구현하는 방법을 알아봅니다.
1. 라라벨 생텀(Laravel Sanctum)이란 무엇인가요?
Laravel Sanctum은 간단하면서도 강력한 API 인증 및 권한 부여 기능을 제공하는 경량 인증 패키지입니다. 이는 Laravel 미들웨어 및 HTTP 인증을 기반으로 하므로 API 요청에 인증 토큰을 안전하게 연결할 수 있습니다.
Laravel Sanctum은 쿠키 기반 인증과 토큰 기반 인증의 두 가지 인증 방법을 지원합니다. 쿠키 기반 인증은 Laravel 미들웨어를 사용하여 요청에 유효한 인증 쿠키가 있는지 확인합니다. Header 클래스의 토큰을 확인하고 유효한지 확인하는 또 다른 방법입니다.
2. Laravel Sanctum 설치
시작하기 전에 먼저 Laravel Sanctum을 설치해야 합니다. Laravel Sanctum은 작곡가 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다:
composer require laravel/sanctum
물론, 작곡가.json 파일에 다음 요구 사항을 추가하여 수동으로 설치할 수도 있습니다:
{ "require": { "laravel/sanctum": "^2.9" } }
완료되면 다음 명령을 실행하여 Laravel을 게시합니다. Sanctum 구성 파일 및 데이터베이스 마이그레이션 파일:
php artisan vendor:publish --tag=sanctum-config php artisan vendor:publish --tag=sanctum-migrations php artisan migrate
3. Laravel Sanctum 구성
app/Http/kernel.php 파일을 수정하고 Sanctum 미들웨어를 추가하세요:
// app/Http/Kernel.php protected $middleware = [ // ... LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, ]; protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, 'throttle:api', IlluminateRoutingMiddlewareSubstituteBindings::class, ], ];
이렇게 하면 모든 요청 시 Sanctum의 쿠키 기반 인증을 사용할 수 있습니다.
config/auth.php 파일을 열고 기본값과 가드를 찾아 sancttum을 사용하도록 구성하세요.
// config/auth.php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], ],
이를 통해 Sanctum을 토큰 기반 인증에 사용할 수 있습니다.
새 버전의 Laravel을 사용하는 경우 공급자를 추가할 필요가 없습니다. 이전 버전을 사용하는 경우 config/app.php 파일을 열고 공급자 배열에 다음 줄을 추가하세요:
LaravelSanctumSanctumServiceProvider::class,
IV. Create Authorization Token
이제 Laravel Sanctum을 구성했으므로 이에 대해 알아보겠습니다. 다음 Sanctum을 사용하여 인증 토큰을 만드는 방법.
public function createToken(Request $request) { $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]); if($user) { $token = $user->createToken('API Token')->plainTextToken; return response()->json([ 'token' => $token, ]); } else { return response()->json([ 'message' => 'Invalid credentials', ], 401); } }
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
5. API 인증 및 승인 구현
인증 토큰을 생성한 후 Sanctum을 사용하여 무단 액세스로부터 API 엔드포인트를 보호할 수 있습니다. Laravel 라우팅 미들웨어를 사용하여 인증 토큰을 확인하고 무단 액세스를 거부할 수 있습니다.
// routes/api.php Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
이 경로는 Sanctum 인증 미들웨어를 사용하여 보호됩니다.
php artisan serve
이제 /api/user 경로에 액세스하여 로그인한 사용자의 세부 정보를 볼 수 있습니다. 이제 Authorization 헤더가 없으면 액세스할 수 없으며 401 Unauthorized HTTP 상태 코드가 반환됩니다.
6. Ending
Laravel Sanctum은 Laravel 웹 애플리케이션 및 웹 API에서 인증 및 권한 부여를 쉽게 구현할 수 있는 강력하고 사용하기 쉬운 인증 및 권한 부여 솔루션입니다. 무단 액세스로부터 API 엔드포인트를 쉽게 보호하고 어떤 사용자가 어떤 API 엔드포인트에 액세스할 수 있는지 쉽게 제어할 수 있습니다. 이 글에서는 Laravel Sanctum을 설치하고 구성하는 방법과 이를 사용하여 인증 토큰을 생성하고 API 인증 및 인증을 구현하는 방법을 살펴보았습니다.
위 내용은 Laravel 개발: Laravel Sanctum을 사용하여 API 인증 및 권한 부여를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!