Nest JS Guard & Custom Decorator

백선호·2021년 9월 19일
0
post-thumbnail

이번에는 Passport 모듈을 통해서 JWT 토큰을 이용해서 로그인 기능을 구현하고 Guard와 Custom Decorator를 사용해 보겠습니다. 로그인 시 발급된 토큰은 payload 안에 사용자의 고유한 정보 값으로 만들어지며 이때 Passport 모듈을 사용하며, 사용자는 인가가 필요한 기능에 Request Header를 넣어 보내주어서 Guard를 이용해서 인가를 해준다. 인가가 되었다면 Custom Decorator를 이용해서 payload 안에 있는 정보를 사용하여 Database 안의 User에 대한 정보를 모두 가져올 수 있다. 이러한 처리를 쉽게 해주도록 도와주는 것이 Passport Module입니다.



controller에서 jwt 로그인을 사용해서 데이터베이스에 사용자를 찾고 사용자의 account를 이용해서 payload를 만들고 token을 생성한다.

로그인을 통해 받아온 토큰을 Request Header를 넣어 요청을 보내면 Guard가 먼저 실행되면서 payload의 유효성 검사를 한다.

Response에는 사용자의 개전 정보가 들어가면 안 되므로 구조 분해 할당을 통해서 비밀번호를 제외한 결괏값을 보내주었다.

@Res 데코레이터를 사용해 request를 불러온 후 request.user로 user의 정보를 사용할 수 있지만 request.user를 사용할 수도 있지만 Custom Decorator를 사용해서 user 정보만 반환할 수 있다.

profile
baik9261@gmail.com

0개의 댓글