framework/NestJs (5) 썸네일형 리스트형 [NestJs] JWT 사용 JWT 설명 JWT란? JSON Web Token : json 형식으로 사용하는 웹 토큰이다. JWT 구성 1. Header base64 인코딩 토큰의 타입과 알고리즘 2. Payload base64 인코딩 데이터(key-value) 필요한 정보만 넣는게 중요하다. 3. Signature Header와 Payload를 조합하고 비밀키로 서명한 후 base64로 인코딩 4. JWT 예시 aaa.bbb.ccc 프로세스 설명 로그인(발급) 프로세스 1. 프론트엔드에서 로그인을 위한 정보를 서버로 전송한다. 2. 백엔드에서 로그인한 정보를 수신한다. 3. 백엔드에서 시크릿 키를 사용(서명)하여 JWT를 생성한다. 4. 생성한 JWT를 포론트엔드로 발급(전송)한다. 5. 프론트엔드에서 발급된 JWT를 안전한 장소.. [NestJs] 디자인 패턴 적용 Nest에서 제공하는 CLI로 프로젝트를 생성하면 src 디렉토리 내부는 아래와 같이 구성되어 있다. Controller : 들어오는 요청을 처리하고 클라이언트에 응답을 반환하는 역할을 한다. Service(공급자) : 서비스, 리포지토리, 팩토리 등이 공급자로 취급되며 공급자는 종속성으로 주입할 수 있다. Module: Nest 애플리케이션 그래프를 구축하는 시작점이다. 다른 모듈과 공급자 관계 및 종속성 설정을 담당한다. main: 모듈을 인스턴스화하여 애플리케이션을 생성한다. spec: Test를 담당한다. 위의 패턴에 추가적으로 dto, repository, schema를 추가하였다. 1. 모듈 $ nest g mo cats 모듈을 먼저 생성한 후 Nest CLI 를 이용해 서비스, 컨트롤러를 생.. [NestJs] swagger 예시 npm 설치 npm i @nestjs/swagger 예시 시작 main.ts에서 swagger 모듈 설정 import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.enableCors({ origin: true, }); // swagger 모듈 설정 시작 // npm i @nestjs/swagger const config = new DocumentBu.. [NestJs] Mongoose - 스키마, Insert npm 설치 npm i @nestjs/mongoose mongoose app.module.ts에 import imports: [ MongooseModule.forRoot(MONGODB_URI), ], Validation npm i --save class-validator class-transformer Cat 스키마 생성 몽구스에서는 모든 것이 스키마에서 파생된다. 스키마는 모델을 정의하고, 모델을 통해 데이터베이스에 접근하여 스키마(테이블, 문서) 생성, 데이터 편집을 진행한다. 위에서 설치한 class-validator를 통해 컬럼을 정의한다. @Schema() 를 사용하여 클래스를 스키마 정의로 표기한다. 스키마 옵션의 timestamps를 true로 설정하면 스키마에 생성일시, 업데이터일시가 자동.. [NestJs] npm 명령어 Nest 설치 project-name으로 폴더가 새로 생성된다. $ npm i -g @nestjs/cli $ nest new project-name Schematics 생성 https://docs.nestjs.com/cli/usages $ nest g co(Controller) name $ nest g cl(class) name $ nest g f(filter) name $ nest g mi(middleware) name $ nest g mo(module) name $ nest g pi(pipe) name $ nest g s(service) name config 파일 생성(.env) $ npm i --save @nestjs/config 사용시 1. import app.module.ts에 import 필요.. 이전 1 다음