Skip to main content

Passport란

Laravel Passport는 Laravel 애플리케이션을 OAuth2 인가 서버로 동작시키기 위한 공식 패키지입니다. 서드파티 앱 연동이나 엄격한 OAuth2 플로우가 필요한 API에서 사용합니다.

Passport vs Sanctum

OAuth2가 필수라면 Passport를 선택합니다. 단순한 API 토큰 인증이나 SPA / 모바일 인증이 목적이라면 Sanctum을 선택합니다.

설치

Laravel 13의 공식 권장은 install:api --passport입니다.
기존 프로젝트에서 수동 도입하는 경우, 다음 명령으로도 설정할 수 있습니다.
첫 배포 시에는 키 생성만 실행하고 싶은 경우도 있습니다.

설정

User 모델

User 모델에 HasApiTokens 트레이트와 OAuthenticatable 인터페이스를 추가합니다.

auth 가드

config/auth.phpapi 가드에서 passport 드라이버를 사용합니다.

서비스 프로바이더 설정

AppServiceProviderboot()에서 스코프 정의와 토큰 유효 기간을 설정할 수 있습니다.

클라이언트 관리

인가 코드 그랜트용 클라이언트

이 클라이언트는 사용자 동의 화면을 동반하는 OAuth2 표준 플로우에서 사용합니다.

클라이언트 크리덴셜 그랜트용 클라이언트

머신 간 통신 엔드포인트에서는 EnsureClientIsResourceOwner 미들웨어를 사용합니다.

토큰 관리

스코프 부여

스코프 체크

실효

API 라우트 보호

사용자 액세스 토큰으로 보호하는 API에는 auth:api를 붙입니다.
클라이언트 크리덴셜 그랜트 라우트는 auth:api가 아닌 EnsureClientIsResourceOwner를 사용해 주세요.

Personal Access Token

OAuth2의 완전 플로우를 사용하지 않고, 사용자 자신이 API 토큰을 발행하는 용도에 적합합니다.
Personal Access Token이 주요 용도라면, Laravel 공식에서도 Sanctum을 검토할 것을 권장하고 있습니다.

관련 링크

마지막 수정일 2026년 7월 13일