본문 바로가기

캡스톤 설계 [건물별 소통 플랫폼 BBC]/개발 진행

유저 정보가 들어있는 User 커스텀 데코레이터 현재 유저의 정보를 반환하는커스텀 데코레이서 생성 사용자의 정보가 잘 넘어온는것을 확인. 더보기
백엔드 로컬로그인 Passport로 Jwt Strategy 전략및 UseGuard데코레이터로 인증 및 인가 npm install @types/passport-jwt 필요 패키지 설치 strategy를 자동으로 실행해줄 guard 작성 payload 파일 따로 생성 다른 모듈에서도 사용하기 위해 injectable 데코레이션 사용해서 strategy 작성 아래 라우터로 요청에 user가 들어가는지 확인 잘 담기는것을 확인 ! 더보기
백엔드 로컬로그인 JWT토큰 발급 받기 npm install @nestjs/jwt @nestjs/passport passport passport-jwt --save jwt 및 passport 관련 패키지 설치 user 컨트롤러에서 로컬 로그인 라우트 생성 nest g module auth nest g controller auth nest g service auth 로그인과 인증 인가를 맡을 auth 모듈 생성 passport 모둘과 configmodule jwt모듈 설정과 user모듈과 auth 모듈간의 순환참조모듈 문제를 해결해줄 forwardRef 함수 import해주기. auth모듈에서 userService를 사용하기 위해 exports user모듈과 auth 모듈간의 순환참조모듈 문제를 해결해줄 forwardRef 함수 import해주.. 더보기
NestJS request LifeCycle[요청주기] 출처 : https://dkrnfls.tistory.com/83 출처 :https://velog.io/@haron/NestJS-Lifecycle-Events 더보기
백엔드 Interceptors & AOP 패턴 Interceptor는 @injectable() 데코레이터로 주석이 달린 클래스이며 NestInterceptor 인터페이스를 구현해야한다. 또한 AOP(aspect oriented Programming,관점지향프로그래밍)에서 영감을 받은 여러가지 유용한 기능들이 있다. 즉 컨틀롤러가 시작할때와 끝났을때 각각 특정 기능들을 수행할 수 있다. 하지만 주로 컨트롤러 끝났을 때의 시점을 주로 사용한다. . . success.interceptor.ts 생성 후 아래와 같이 커스텀 user 컨트롤러단 전체에 인터셉터 적용. 성공시 커스텀 한 형식으로 응답을 주는것을 확인할 수 있다. 더보기
백엔드 Exception filter 내가 백엔드와 프론트엔드 둘다 개발을 하기에 에러처리에 대한 응답은 기본적으로 가시성이 좋게 약간의 커스텀만 하여 Nest가 던저주는 코드와 메세지 그대로사용할 예정이며 추후 개발시 커스텀이 필요한 경우 exception filter를 세부적으로 커스텀 처리할것이다. . . 우선 개별적으로 필터는 넣는것이 아닌 전역적으로 필터를 넣어준다. http-exception.filter.ts 파일을 생성. 기본적으로 errors는 string 아니면 object로 타입이 뜬다. object는 nest 자체적으로 던져주는 에러를 의미하며 string은 개발자 자체적으로 던져준 에러이다. 위와 같이 커스텀하여 개발자(나)가 자체적으로 던진 에러는 string으로 받아서 처리하고 이외에는 object로서 비구조분해할당.. 더보기
백엔드 로깅 미들웨어 추가 기본적으로 백엔드 미들웨어는 라우터 보다 먼저 실행이 된다. 그래서 reponse.on 사용. 우선 http에 대한 기본적인 메서드와 url 상태코드 ip 등등만 로깅을 하게 설정하였다. 추후 개발시 필요하면 더 추개해야겠다. 아래와 같이 4번의 api 요청에 대해 로그가 찍히는것을 확인 더보기
백엔드 회원가입 nest g module user nest g controller user nest g service user nest cli로 user 모듈 기본 구조 세팅 npm i bcrypt 비밀번호 암호화를 위한 bcrpt 패키지 설치 dto 생성 및 signup 메서드 컨트롤러, 서비스단 완성. postman으로 api 통신 테스트 결과 데이터가 잘 넘어온다. 데이터베이스에도 해쉬된 비밀번호가 잘 들어온다. 끝. 더보기