[laravel] sanctum (API 인증) 구축

2022. 1. 4. 17:22Laravel

sanctum을 이용하면 API 토큰 발급과 SPA(Single Page Application) 인증시 사용할 수 있다.

API 인증

  • Sanctum은 OAuth의 복잡함 없이 사용자에게 API 토큰을 발행하는 단순한 패키지이다.
  • Sanctum을 사용하여 해당 토큰을 생성하고 관리 할 수 있습니다. 이러한 토큰들은 매우 긴 만료일(몇 년)을 가지고 있지만, 어느 때라도 사용자에 의해서 해지(revoke) 할 수도 있다.
  • Sanctum은 단일 데이터베이스 테이블 내에 사용자 API 토큰을 저장하고, 유효한 API 토큰을 포함해야하는 Authorization 헤더를 통해 오는 요청(request)만 인증에 성공하게 된다.

설치

1. Composer

composer require laravel/sanctum

2. vendor:publish

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

3. migration (token을 위한 personal_access_tokens table이 생성된다.)

php artisan migrate

4. 만료 시간 설정

config\sanctum.php

<?php

return [
.
.
// null 일때는 만료 시간이 없으므로 영구하게 사용할 수 있다.
// 만료 기간을 지정하려면 null 대신 값을 입력하면 된다.
    'expiration' => null,
.
.
];

 

다음으로 Sanctum을 사용하여 SPA를 인증하려는 경우 Sanctum의 미들웨어를 api애플리케이션 app/Http/Kernel.php파일 내의 미들웨어 그룹에 추가

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],