1. Module
- JWT : JSON 형식의 자가 포함된 토큰, 클레임 세트를 포함하며 서명으로 확인할 수 있음
- JwtModule : NestJS에서 제공하는 모듈, JWT 기반 인증 기능을 쉽게 구현 가능
- passport : 인증 미들웨어 프레임워크, 다양한 인증 전략
- PassportModule : NestJs에서 제공하는 모듈, Passport를 사용한 인증 기능 구현할수 있게 해줌
- signOptions : JWT를 서명할 때 사용할 옵션을 지정하는 객체, 예 : 유효기간을 설정 가능
2 JWT 파일 생성
- JwtStrategy : Passport를 사용하여 JWT 인증 전략을 정의하는 클래스
- PassportStrategy : Passport 전략을 NestJS와 통합하는데 사용되는 기본 클래스
- Strategy : passport-jwt 라이브러리의 JWT 인증 전략을 나타냄
- InjectRepository : TypeORM 레포지토리를 주입하는 데 사용
- super() : 자식 클래스에서 부모 클래스의 생성자를 호출하는 데 사용됨
- jwtFromRequest : 요청에서 JWT를 추출하는 방법을 지정하는 옵션
- ignoreExpiration : JWT의 만료 시간을 무시할지 여부를 지정하는 옵션
- secretOrKey : JWT를 검증할 때 사용할 비밀 키 또는 공개 키
- fromAuthHeaderAsBearerToken() : Authorization 헤더에서 Bearer형식의 토큰을 추출하는 함수
- payload : JWT의 페이로드 부분, 일반적으로 사용자의 정보나 권한과 같은 데이터를 포함
- findOne() : TypeORM에서 단일 레코드를 찾는 메소드
- UnauthorizedException() : 권한이 없음을 나타내는 예외를 발생시킴
3 Service
- where : {} 뜻 : findOne 메소드에서 사용되는 객체, 데이터를 찾을 때 사용할 조건을 지정
- compare () : bcrypt 라이브러리에서 사용하는 메소드, 암호화된 비밀번호와 평문을 비교함
- sign() : JwtService의 메소드, 주어진 payload로 JWT를 서명
4 Login DTO
5 Controller
- @Body() lgoinUserDto : LoginUserDto 의 뜻 :HTTP 요청 본문에서 LoginUserDto 타입의 객체를 추출하는 데 사용되는 데코레이션