Laravel Sanctum은 Laravel 애플리케이션에서 API 인증과 SPA(Single Page Application) 인증을 쉽게 구현할 수 있는 경량 인증 패키지입니다. 이 글에서는 Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법을 살펴보겠습니다.
먼저 SPA와 API 인증이 무엇인지 알아보겠습니다.
SPA 인증은 전체 페이지를 다시 로드하지 않고 AJAX를 사용하여 웹 서버에 정보를 요청하여 부분 콘텐츠를 업데이트하는 단일 페이지 애플리케이션을 말합니다. SPA를 사용할 때 API는 인증된 사용자만 액세스할 수 있도록 인증되어야 합니다.
API 인증은 API 요청 인증 프로세스를 의미합니다. 클라이언트가 요청을 보낼 때 API는 해당 요청이 예상 사용자로부터 온 것인지 확인해야 하므로 API 엔드포인트가 인증된 사용자만 사용되도록 해야 합니다.
Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법은 다음과 같습니다.
1. Laravel Sanctum 설치
작곡가 패키지 관리자를 사용하여 Laravel Sanctum을 설치할 수 있습니다. Laravel 프로젝트에서 다음 명령을 실행하세요:
composer require laravel/sanctum
2. Laravel Sanctum 설치 프로그램 실행
Laravel Sanctum은 설치 중에 애플리케이션을 자동으로 구성하는 설치 프로그램을 제공합니다. 다음 명령을 사용하여 이 설치 프로그램을 실행할 수 있습니다:
php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"
3. 마이그레이션 실행
Sanctum 작업을 지원하는 데 필요한 데이터베이스 테이블을 생성하려면 Sanctum 마이그레이션을 실행해야 합니다. 다음 명령을 실행하세요:
php artisan migrate
4. 애플리케이션 구성
미들웨어 스택에 Laravel Sanctum을 추가해야 합니다:
'api' => [ 'middleware' => ['auth:sanctum'], 'throttle:60,1', 'prefix' => 'api', 'namespace' => 'AppHttpControllersAPI', ],
5. 사용자에게 인증 토큰을 발급합니다.
Laravel Sanctum에서는 tokenCan 메소드를 사용할 수 있습니다. 토큰에는 특정 API 권한이 있습니다. createToken 메소드를 사용하여 사용자에게 인증 토큰을 발행할 수 있습니다:
use IlluminateHttpRequest; /** * Store a newly created resource in storage. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse */ public function store(Request $request) { $user = User::find(1); $token = $user->createToken('token-name', ['server:update'])->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ]); }
이렇게 하면 server:update 권한이 있는 'token-name'이라는 사용자에 대한 토큰이 생성됩니다.
6. API 엔드포인트 보호
컨트롤러에서는 "미들웨어" 메서드를 사용하여 API 엔드포인트를 보호할 수 있습니다.
public function update(Request $request, $id) { if (!$request->user()->tokenCan('server:update')) { abort(403, 'Unauthorized'); } // Update the server }
이 예에서는 server:update 권한이 있는 사용자만 업데이트 메서드에 액세스하도록 허용합니다.
7. SPA에서 인증 토큰 사용
SPA에서는 Sanctum의 @auth 및 @csrf 블레이드 지시어를 사용하여 인증 토큰을 얻을 수 있습니다.
Laravel @auth @endauth@yield('content')
이 예에서는 Sanctum을 사용했습니다. @auth 및 @csrf 블레이드 지시어는 다음과 같습니다. 사용자 인증 토큰 및 CSRF 토큰을 얻는 데 사용됩니다.
Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법에 대한 모든 것입니다. Laravel Sanctum을 사용하면 API 엔드포인트와 SPA 애플리케이션을 쉽게 보호할 수 있으며 최고의 보안 관행을 구현하는 데 도움이 됩니다.
위 내용은 Laravel 개발: Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!