Laravel 개발: Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-06-13 12:36:10
원래의
1051명이 탐색했습니다.

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        
  
@yield('content')
@auth @endauth
로그인 후 복사

이 예에서는 Sanctum을 사용했습니다. @auth 및 @csrf 블레이드 지시어는 다음과 같습니다. 사용자 인증 토큰 및 CSRF 토큰을 얻는 데 사용됩니다.

Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법에 대한 모든 것입니다. Laravel Sanctum을 사용하면 API 엔드포인트와 SPA 애플리케이션을 쉽게 보호할 수 있으며 최고의 보안 관행을 구현하는 데 도움이 됩니다.

위 내용은 Laravel 개발: Laravel Sanctum을 사용하여 SPA 및 API 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!