목록JavaScript/NestJS (16)
끄적이는 개발노트
백엔드 API 개발 시에 개발한 API 정보를 시각적으로 표현하고 공유하기 위해 API 문서를 만든다. 그 중 Swagger라는 툴을 통해 만들 수 있는데 NestJS에도 적용이 가능하다. 이를 통해 특정 페이지를 통해서 API의 엔드포인트, 스키마, DTO 등에 대한 정보를 시각적으로 편리하게 알아볼 수 있다. 업무 시에도 백엔드 담당 개발자 분이 Swagger를 사용해 API를 공유해서 편리하게 API를 연동한 경험이 있고, 본인 역시 업무에서 서브로 백엔드를 담당해 일부 개발할 때 문서에 맞게 Swagger를 작성한 경험이 있다. 그렇기 때문에 개인 프로젝트를 진행할 때도 Swagger를 적용하고 있다. https://swagger.io/ API Documentation & Design Tools ..
보안을 위해 회원가입 시 비밀번호 암호화 작업은 필수다. 이 때, 가장 많이 사용하는 암호화 npm이 bcrypt 이다. bcrypt는 단방향 암호화로 복호화가 불가능하지만, 비교함수를 통해 검증이 가능하다. 1. 설치 yarn add bcrypt 2. 암호화 import * as bcrypt from 'bcrypt'; export const hash = async (plainText: string): Promise => { const saltOrRounds = 10; return await bcrypt.hash(plainText, saltOrRounds); }; bcrypt로 hash 되는 값은 매번 다른 값이 생성된다. saltOrRounds 는 2^10번 해싱을 반복한다는 뜻이다. 3. 비교 imp..
이번 포스트에서는 카카오톡 알림톡을 전송해주는 API인 솔라피 사용법에 대해 정리한다. 솔라피를 활용하면 SMS, LMS 등의 서비스도 이용가능하며, 사용법이 매우 간편하다. 1. 사전준비 - 솔라피 회원가입 https://solapi.com/ 세상에서 가장 쉬운 알림톡 문자메시지 플랫폼 - 솔라피 3중 보안으로 안전보장 기존 아이디/비밀번호 방식의 로그인에 더해서 2차 인증 도입으로 해킹 사고로 부터 안전합니다. 발송량에 따라 일일 발송량 제한이 자동으로 조정되어 클라이언트 프로 solapi.com - 카카오톡 채널 개설 및 비즈니스 채널 신청 https://guide.solapi.com/alimtalk/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%B1%84%EB%84%90..
1. auth module import { Module } from '@nestjs/common'; import { AuthService } from './auth.service'; import { LocalStrategy } from './local.strategy'; import { UsersModule } from '../users/users.module'; import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; import { jwtConstants } from './constants'; @Module({ imports: [ UsersModule, PassportModule, JwtModu..
이번 포스트에서는 로그인 구현에서 가장 많이 사용되는 JWT 토큰에 대해 정리한다. 토큰 기반의 인증 시스템은 로그인 토큰을 발급하고, 서버에 요청을 할 때 헤더에 토큰을 담아 유저 인증을 처리하는 방식이다. auth 모듈과 user 모듈은 각각 본인의 프로젝트에 맞게 구성되어 있다는 전제 하에 필요한 코드들만 빼내서 정리한다. 1. 설치 yarn add @nestjs/passport passport passport-local @nestjs/jwt passport-jwt yarn add -D @types/passport-local @types/passport-jwt 2. Jwt strategy auth 디렉토리 레벨에서 strategy 폴더를 만든 후, 아래의 파일을 추가한다. // auth/strate..
이번 포스트에서는 NestJS에서 middleware를 사용하는 방법을 알아본다. Middleware 미들웨어는 라우터 핸들러 전에 호출되는 함수다. 미들웨어 기능은 요청(request) 및 응답(response) 객체 및 어플리케이션의 요청-응답주기에서 next() 미들웨어 함수이다. next 미들웨어 함수는 일반적으로 next 라는 변수로 표시된다. NestJS 미들웨어는 기본적으로 express 미들웨어와 동일하다. 공식 express 문서를 통해 미들웨어의 기능을 알아본다. 미들웨어 기능은 다음 작업을 수행할 수 있다. - 모든 코드를 실행 - 요청 및 응답 객체를 변경 - 요청-응답주기를 종료 - 스택의 next 미들웨어 함수를 호출 - 현재 미들웨어 함수가 요청-응답주기를 종료하지 않으면 ne..