Nest를 이용한 REST API를 개발하려고 합니다.DB연동과 보안을 위하여 JWT를 사용한 인증 시스템을 사용합니다.추후 Client Side 부분은 React의 Next.js를 사용합니다.포스팅 되는 내용의 대부분은 Nest.js 공식 사이트의 내용을 참고하여 진
최대한의 자료는 nest-js의 공식 문서를 참고하여 작성해보려고 합니다.nest-js를 이용하여 토큰 인증 방식을 통해 rest api 구현과 graphql을 구현합니다.SeIf라는 어플리케이션을 만든 다음 해당 폴더의 루트에 들어가 vscode를 열어줍니다.생성된
먼저 User 모듈을 생성합니다.Nest에서는 nest cli를 이용하여 명령어로 생성할 수 있습니다.cli 명령어는 터미널에 nest를 치면 확인이 가능합니다.명령어가 성공적으로 수행이 되면 app.module.ts의 import 부분에UsersModule이 추가되어
DB에 값을 Insert하기 위해서는 TypeORM의 save함수를 이용합니다.요청의 URI를 담당하는 Controller와 해당 요청을 가지고 DB와 상호작용하는 Service의 코드를 수정하여 추가할 수 있습니다./src/users/users.service.ts/s
참조 사이트 Auth 인증 구현 API를 만들기 위해서는 인증의 구현을 필수 사항입니다. node.js의 인증 라이브러리인 Passport를 이용합니다. Passport의 인증 절차 사용자의 자격증명(id/pw, JWT 등)을 확인하여 인증합니다. 인증 상태 관리(
JWT를 이용한 인증 절차 구현 이전 포스트인 Part1 에서 했던 사용자 이름과 암호를 통한 인증에서 JWT 인증으로의 변경을 하려고 합니다.
이전 파트에서 구현하였던 auth 인증 절차에서 Token 값을 쿠키에 저장하는 부분을 추가하려고 합니다.이전 로직에서는 Access Token을 그대로 반환했지만 토큰만을 반환하여 cookie에 저장해야합니다./src/auth/auth.service.ts/src/ap
현재까지는 username이라는 정해진 것으로 auth 인증 절차를 진행했습니다. 이제는 username 대신 email을 이용한 인증 절차로 변경하려고 합니다.일단 이전에 추가했던 DB의 데이터를 지우기 위하여 user table을 삭제한 후 진행해주세요./src/u
password를 일반적인 string 형태로 놔두는 것을 보안에 매우 치면적입니다. 그렇기 때문에 암호화는 선택사항이 아닌 필수사항입니다. js에서 지원하는 bcrypt 패키지를 이용하려고 합니다.bcrypt 패키지는 해싱 알고리즘을 지원합니다. 문자열 해시, 일반
기존에는 ormconfig.json 파일에 DB의 정보를 기입해 뒀습니다. 하지만 이번에는 이것을 Nestjs의 Config를 이용하여 환경변수를 설정해 보도록 하겠습니다. 이렇게 외부로 환경변수를 빼두면 깃과 같은 저장소에 커밋하지 않기가 쉽습니다..env에는 DB의
기존에 DB정보를 설정했던 .env 환경변수 설정 파일에 JWT의 SECRET 정보를 추가합니다.Secret 정보와 JWT 정보의 만료 시간을 작성합니다.만료시간은 확인을 위해 30초로 설정합니다.이전에 생성한 ormconfig.json파일과 constants.ts 파
지금까지 작성한 내용은 Token의 만료 시간을 매우 짧게 주어 짧은 만료 시간안에 처리를 해야했습니다. 짧은 만료시간은 토큰이 탈취되더라도 만료 시간이 매우 짧기 때문에 공격자의 해킹에 대하여 보호 받을 수 있습니다.하지만 이러한 짧은 만료 시간으로 인해 계속하여 T