라라벨 12 API와 Sanctum 통합: 단계별 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
웹 개발자, API 인증 구현을 담당하는 개발자
난이도: 중간 (Laravel 및 Sanctum 기본 지식 필요)
핵심 요약
- Laravel 12에서 Sanctum 설치:
composer require laravel/sanctum
명령어로 설치해야 하며,php artisan vendor:publish
로 설정 파일을 생성해야 합니다. - User 모델 설정:
HasApiTokens
trait을 사용하여 API 토큰을 지원하고,hidden
배열에 보안 관련 필드를 포함시켜야 합니다. - API 라우트 구성:
auth:sanctum
미들웨어를 사용하여 인증된 요청만 처리할 수 있는 라우트를 구성합니다.
섹션별 세부 요약
- 프로젝트 설치 및 설정
composer create-project laravel/laravel example-app
명령어로 새로운 Laravel 프로젝트를 생성합니다.php artisan install:api
명령어로 Sanctum을 설치하고, Laravel 12에서는composer require laravel/sanctum
명령어로 추가 설치해야 합니다.php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
명령어로 Sanctum 설정 파일을 생성합니다.php artisan migrate
명령어로 데이터베이스 마이그레이션을 실행합니다.
- 마이그레이션 설정
users
테이블에 OTP, 이메일 인증, 패스워드 재설정 토큰, 삭제 토큰 등 추가 필드를 포함합니다.password_reset_tokens
및sessions
테이블도 생성하여 인증 관련 데이터를 저장합니다.
- User 모델 구성
HasApiTokens
trait을 사용하여 API 토큰을 지원합니다.hidden
배열에password
,otp
,reset_password_token
등 보안 관련 필드를 포함시켜 보호합니다.casts
메서드를 통해email_verified_at
,otp_expires_at
등 필드를datetime
또는boolean
형식으로 변환합니다.
- API 라우트 구성
routes/api.php
파일에서RegisterController
,LoginController
,LogoutController
,ResetPasswordController
등을 사용하여 등록, 로그인, 로그아웃, 비밀번호 재설정 등 라우트를 구성합니다.auth:sanctum
미들웨어를 사용하여 인증된 요청만 처리할 수 있는 라우트를 설정합니다.
- RegisterController 구현
- 사용자 등록 로직에서
otp
,otp_expires_at
,is_otp_verified
등의 필드를 생성하고, 이메일 인증을 위한 OTP를 생성 및 발송합니다. VerifyEmail
메서드를 통해 OTP를 검증하고, 이메일 인증 상태를 업데이트합니다.
결론
Laravel 12에서 Sanctum을 사용하여 API 인증을 구현할 경우, composer require laravel/sanctum
명령어로 설치하고, auth:sanctum
미들웨어를 사용하여 보안을 강화해야 합니다. 사용자 등록 및 인증 로직은 RegisterController
와 User
모델에서 구현되어야 하며, OTP 및 이메일 인증은 필수적인 과정입니다.