Passport Module
2026년 5월 17일
-
NestJS에서 passport을 사용하기 위해서는 passport NestJS 모듈(module)을 생성해주면 된다.
-
필요한 NestJS 모듈(module)에서 passport를 등록해주면 되지만 그렇게 되면 위에서 구현한 JwtStrategy 또한 프로바이더(Provider)로 등록을 해야한다.
Passport 특징
모듈화된 인증 시스템
- 다양한 전략(Strategy)를 쉽게 연결해서 사용 가능하다.
- 인증관련 작성할 코드가 많이 줄어든다.
NestJS 미들웨어(Middleware) 기반 디자인
- 요청, 응답, NestJS 생명 주기(LifeCycle)에 비파괴적 방식으로 통합된다.
일반화된 가벼운 코어
- passport 코어는 넓은 전략을 수용할 수 있도록 가볍고 일반적(Unopinonated)으로 설계되었다.
세션(Session) 및 토큰 방식 사용
- 세션(Session) 기반과 토큰 기반의 인증 시스템 모두 사용 가능하다.
방대한 생태계
- 다양한 오픈소스 전략들이 무료로 공개되어있다.
- 어려운 부붑은 직접 코딩할 필요 없을 가능성이 높다.
Passport 사용방법
- 원하는 것은 다른
configModule들 처럼app.module에서 설정을 포함한 Passport 모듈을 import하고, 사용하는module에서 Passport 모듈만 import하여 쓰기를 원하기 때문에 아래와 같이 작성하였다.
TypeScript
- passport 모듈(Module)을 import 한다.
- 만약 기본 전략을 설정하고 싶다면 defaultStrategy를 설정하면 된다.
- provider로 구현한 전략을 추가해준다.
Strategy 구현
- 아래와 같이 특정 Strategy를 extends하면 되어 어떤 Strategy를 상속(Inheritance)받냐에 따라서 validate() 메서드(Method)의 구현이 달라진다.
TypeScript
Passport 적용
- 적용은 @UseGuards() 데코레이터(Decorator)를 사용하여 AuthGuard()를 적용시키면 된다.
TypeScript