꾸준히 재밌게
728x90
728x90
article thumbnail
[NestJS] JWT Token 인증 - (3) Refresh Token 사용
Java Script 2023. 11. 25. 19:15

이전 글에서 이어집니다. [NestJS] JWT Token 인증(Access Token) 구현하기(with passport) - (2) 서론 지난글에 이어, Nest에서 JWT를 사용한 인증을 진행해보려한다. [NestJS] JWT Token 인증 - (1) JWT 토큰이란? [NestJS] JWT Token 인증 - (1) JWT 토큰이란? 쿠키와 세션을 통한 인증 쿠키와 세션 (Cookie & Sessio mag1c.tistory.com Access Token의 한계 Access Token을 통해 웹사이트를 이용하다, 토큰이 만료되면 다시 재로그인을 해야만 하는 불편함을 겪게 된다. 또한 Access Token 만료 전 토큰을 탈취당하게 된다면 토큰이 만료될 때까지 속수무책이라는 보안상의 문제도 있다..

article thumbnail
[NestJS] JWT Token 인증(Access Token) 구현하기(with passport) - (2)
Java Script 2023. 11. 18. 18:55

서론 지난글에 이어, Nest에서 JWT를 사용한 인증을 진행해보려한다. [NestJS] JWT Token 인증 - (1) JWT 토큰이란? [NestJS] JWT Token 인증 - (1) JWT 토큰이란? 쿠키와 세션을 통한 인증 쿠키와 세션 (Cookie & Session) HTTP 프로토콜의 특징 비연결성 ( Connectionless ) 클라이언트가 서버에 요청(Request)할 때, 그에 대한 응답(Response)을 한 후, 연결을 끊는다. 비상태 mag1c.tistory.com NestJS에서 제공하는 공식 문서의 인증 관련 페이지를 참조했다. Documentation | NestJS - A progressive Node.js framework Nest is a framework for b..

article thumbnail
[NestJS] JWT Token 인증 - (1) JWT 토큰이란?
Java Script 2023. 11. 15. 14:54

쿠키와 세션을 통한 인증 쿠키와 세션 (Cookie & Session) HTTP 프로토콜의 특징 비연결성 ( Connectionless ) 클라이언트가 서버에 요청(Request)할 때, 그에 대한 응답(Response)을 한 후, 연결을 끊는다. 비상태성 ( Stateless ) 클라이언트의 상태 정보를 가지지 않는 mag1c.tistory.com 쿠키는 인증이 필요한 요청을 할 때마다 쿠키를 던져 요청하는 동작 구조를 가진다. 쿠키를 통한 인증 시 다음과 같은 단점들이 존재한다. 쿠키의 단점 1. 민감 정보들을 노출당하기 쉽고 조작당하기도 쉽다. 2. 웹 브라우저마다 지원 형태가 다르기 때문에 공유가 불가능하다. 3. 쿠키의 사이즈 제한(4KB)이 있어 충분한 데이터를 담을 수 없다. 4. 서버에 매..

article thumbnail
[NestJS] typeorm의 transaction
Java Script 2023. 11. 9. 09:50

서론 JWT를 구현하는 도중, 아래와 같은 에러가 발생했다. //회원가입 및 JWT TOKEN 발급 코드 async signup(signInDto: UserSigninDto) { const user = await this.userService.findById(signInDto.id); const exist = user != null; if (exist) { throw new BadRequestException('중복된 아이디 존재'); } else { const valiUser = new UserEntity(); const hashedPassword = this.hash(signInDto.pw); valiUser.id = signInDto.id; valiUser.pw = hashedPassword; co..

article thumbnail
[NestJS] 예외처리, Exception Filter (HttpException, Error Handling]
Java Script 2023. 10. 9. 16:46

서론 노드로 전향한지 만 1개월이 되었다. 현재 근무하고 있는 곳의 애플리케이션 코드를 보면, 따로 예외처리를 해주는 부분이 없어 에러 핸들링과 에러 로깅 작업을 커스텀으로 진행하려고 한다. 이를 위해 공식 문서를 활용해가며 학습할 필요를 느껴서 공식문서에 해당 내용을 확인하고 학습해보자. NestJS의 예외 처리 Nest에는 애플리케이션 내에서 처리되지 않은 모든 예외를 처리하는 내장 예외 레이어가 존재한다. 애플리케이션 코드에서 예외 처리가 되지 않으면 예외 레이어에서 예외를 처리한다. 기본적으로 이 작업은 HttpException유형과 하위 클래스의 예외를 처리하는 내장 전역 예외 필터에 의해 수행된다. 예외를 인식할 수 없는 경우 다음과 같은 500에러를 내보낸다. { "statusCode": 5..

article thumbnail
[NestJS] Docker와 Git Actions, EC2를 활용한 CI/CD 환경 구축 - 도커라이징하여 EC2에 배포하기
Java Script 2023. 9. 22. 14:43

서론 사내 서비스가 Git Actions, Docker, EC2, PM2를 활용해 CI/CD 및 파이프라인을 구축하여 사용하고 있었기에 학습이 필요하다.. 간단하게 따라해볼 무언가를 찾아서 따라해보면서 학습할 것이 필요했는데 초행이다보니 같은 환경에서 진행한 분을 찾기 어려워 외국 유튜브 영상이나 기타 해외 자료들을 활용하며 따라하며 공부했다. CI/CD란? Continuos Integration / Continuous Delivery의 약자로 단어 뜻대로 지속적 통합과 배포를 뜻한다. DockerFile 작성 Docker에 이미지를 빌드하고 컨테이너 생성을 하는 과정은 단순하고 Nodejs docs에서도 가이드라인을 제시해준다. https://nodejs.org/ko/docs/guides/nodejs-..

article thumbnail
[Javascript] using : 자바스크립트의 새로운 변수 키워드
Java Script 2023. 9. 18. 19:09

서론 즐겨보는 개발 관련 유튜브 중 하나인 노마드코더에서 흥미로운 영상을 게시했다. 기존 자바스크립트의 변수 const, var, let을 대체할 강력한 키워드인 using 이라고 소개했다. 역시 프로유튜버답게(??) 어그로를 잘 끄셔서 자연스레 정주행했다. 현재 자바에서 타입스크립트로 전향한 지금, 꽤나 중요한 이슈사항이 될 것 같아서 포스팅하여 정리해보려고 한다. https://www.youtube.com/watch?v=-NmwyJ5S-IY&t=151s 기존의 자바스크립트 변수 간단하게 기존 변수들에 대해 알아보자. es6에서 포함된 기능중 하나는, 변수 선언에 사용할 수 있는 키워드인 let, const의 추가였다. 혹여 단순 using에 대한 정보만을 얻고자한다면, 스크롤을 많이 내려야 할 것 같..

article thumbnail
[NestJS] JWT Guard 사용 중 에러 (metatype is not a constructor / In order to use "defaultStrategy", please, ensure to import PassportModule in each place where AuthGuard() is being used, Otherwise, passport won't work correctly.)
Java Script 2023. 9. 10. 22:30

에러 메세지 JWT Guard설정 후 테스트를 위해 서버를 실행했을 때 발생 원인 그대로 번역하면 메타타입은 생성자가 아니라는 것 같음. metatype is not a constructor에러는 커스텀 가드를 사용할 때 발생할 수 있는 일반적 오류중 하나이며 @UseGuards() 데코레이터에 가드 클래스를 전달할 때 메타타입 정보가 올바르게 전달되지 않을 때 발생한다고 한다. 즉, 인스턴스를 전달하는 것이 아니라 생성자 함수를 전달해야한다. //before @UseGuards(AuthGuard) //after @UseGuards(AuthGuard()) 문제가 된 부분을 수정해주었음. 새로운 에러 In order to use "defaultStrategy", please, ensure to import..

728x90
728x90