AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

라라벨 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 미들웨어를 사용하여 인증된 요청만 처리할 수 있는 라우트를 구성합니다.

섹션별 세부 요약

  1. 프로젝트 설치 및 설정
  • 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 명령어로 데이터베이스 마이그레이션을 실행합니다.
  1. 마이그레이션 설정
  • users 테이블에 OTP, 이메일 인증, 패스워드 재설정 토큰, 삭제 토큰 등 추가 필드를 포함합니다.
  • password_reset_tokenssessions 테이블도 생성하여 인증 관련 데이터를 저장합니다.
  1. User 모델 구성
  • HasApiTokens trait을 사용하여 API 토큰을 지원합니다.
  • hidden 배열에 password, otp, reset_password_token 등 보안 관련 필드를 포함시켜 보호합니다.
  • casts 메서드를 통해 email_verified_at, otp_expires_at 등 필드를 datetime 또는 boolean 형식으로 변환합니다.
  1. API 라우트 구성
  • routes/api.php 파일에서 RegisterController, LoginController, LogoutController, ResetPasswordController 등을 사용하여 등록, 로그인, 로그아웃, 비밀번호 재설정 등 라우트를 구성합니다.
  • auth:sanctum 미들웨어를 사용하여 인증된 요청만 처리할 수 있는 라우트를 설정합니다.
  1. RegisterController 구현
  • 사용자 등록 로직에서 otp, otp_expires_at, is_otp_verified 등의 필드를 생성하고, 이메일 인증을 위한 OTP를 생성 및 발송합니다.
  • VerifyEmail 메서드를 통해 OTP를 검증하고, 이메일 인증 상태를 업데이트합니다.

결론

Laravel 12에서 Sanctum을 사용하여 API 인증을 구현할 경우, composer require laravel/sanctum 명령어로 설치하고, auth:sanctum 미들웨어를 사용하여 보안을 강화해야 합니다. 사용자 등록 및 인증 로직은 RegisterControllerUser 모델에서 구현되어야 하며, OTP 및 이메일 인증은 필수적인 과정입니다.