강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

IJILKJ님의 프로필 이미지
IJILKJ

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

JWT와 로그인 서비스 & 순환 참조 모듈

JWT관련 질문입니다.

작성

·

297

2

사실 강의에 대한 질문은 아니고 공식문서쪽에 관한 질문인데요.
강의를 보고나서 강의대로 말고 공식문서를 보고 JWT를 이용해서 로그인/회원가입 기능을 구현해봤는데 구현자체는 잘 되었는데 이해가 안가는 부분이 있어서 질문드립니다..
공식문서 Security/Authentication부분에 JWT관련 부분을 읽어보면
우선 auth.module.ts에 JwtModule.register({...})를 하게됩니다.
그리고 jwt.strategy.ts란 파일을 따로 만들고 거기서는 JwtStrategy class를 작성하는데요.
두 부분다 secretKey와 expiration에 관한 설정을 하게되는데 여기서 이해가 잘 안갑니다.
JwtModule.register과 JwtStrategy는 각각 무슨 역할을 하는건가요?
두개의 secreKey와 expiration은 일치해야하는거 같은데 왜 그럼 저렇게 2개를 나누어 놓았는지 잘 모르겠습니다.
또.. 공식문서에 보면 JwtAuthGuard class를 만들때 그냥 AuthGuard('jwt')를 상속만 받고 끝내고
제가 실제로 테스트해봐도 JwtAuthGuard는 guard로써 잘 작동하긴하던데
여기서 AuthGuard('jwt')는 위에서 만든 JwtModule.register 또는 JwtStrategy class에 내부적으로 영향을 받나요?
아니면 그냥 nest에서 이미 AuthGuard라는 class를 잘 만들어놔서 그냥 상속해서 사용하기만 하면 되는건가요?

답변 1

1

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요. 김정민님 :)

좋은 질문입니다!

비슷한 질문이 있어서 링크를 남깁니다. https://inf.run/295J

JwtRegister의 시크릿 키는 jwt 토큰을 인코딩할때, JwtStrategy의 시크릿 키는 jwt 토큰을 디코딩(인증)할때 사용된다고 생각하시면 됩니다!

관련 링크에서 원하는 답변을 얻지 못하셨다면 추가적인 질문으로 답변 남겨주세요!

IJILKJ님의 프로필 이미지
IJILKJ
질문자

JWT 암호/복호화 방식에 있어서 항상 대칭키로 하는 것은 아니기 때문에
저렇게 2개로 나누어놓은 것으로 보면되는건가요?

IJILKJ님의 프로필 이미지
IJILKJ

작성한 질문수

질문하기