Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- 리액트 네이티브
- 자바
- 데베
- 지네릭스
- 스터디
- 백준 4358번
- 모두를 위한 딥러닝
- 리액트 네이티브 시작하기
- 딥러닝
- 백준 5525번
- 모두의 네트워크
- 깃허브 로그인
- 백준
- 모두를위한딥러닝
- 깃허브 토큰 인증
- 깃 터미널 연동
- 리액트 네이티브 프로젝트 생성
- 정리
- 머신러닝
- React Native
- 백준 4949번
- 깃 연동
- 문자열
- HTTP
- 네트워크
- 모두의네트워크
- 팀플회고
- 데이터베이스
- 백준 4358 자바
Archives
- Today
- Total
솜이의 데브로그
[NestJS] 유저 서비스와 회원가입 본문
Reference : https://wikidocs.net/150167
- 회원가입 화면을 통해 유저 정보를 입력받아 유저 생성 요청을 받는다.
- DB에 유저 정보를 저장하고, 이메일을 발송하여 유효한 이메일인지 검증.
- 이메일 본문에는 이메일 검증을 위한 요청으로의 링크가 포함
- 링크를 통해 요청이 들어오면 회원가입 준비 단계에서 승인
- 이메일 서비스는 유저 서비스와 분리되어야 한다.
회원가입
- 이메일 검증 시 필요한 토큰을 uuid를 사용하기 위해 라이브러리를 설치한다.
-
$ npm i uuid $ npm i --save-dev @types/uuid
- POST /users 엔드포인트 구현.
-
import { Body, Controller, Post } from '@nestjs/common'; import { CreateUserDto } from './dto/create-user.dto'; import { UsersService } from './users.service'; @Controller('users') export class UsersController { constructor(private usersService: UsersService) { } @Post() public async createUser(@Body() dto: CreateUserDto): Promise<void> { const { name, email, password } = dto; await this.usersService.createUser(name, email, password); } }
- 본문으로 유저 정보 전달받음.
- UsersService에서는
- 가입하려는 유저가 이미 존재하는지 검사, 존재한다면 에러 발생
- 유저를 데이터베이스에 저장.
- 유저가 회원가입 메일을 받고 링크를 눌러 이메일 인증을 할 때 다시 전달받을 토큰. 토큰에서는 유효기간을 설정하여 일정 기간 동안만 인증이 가능하도록 한다.
- 회원 가입 인증 이메일 발송
-
export class UsersService { async createUser(name: string, email: string, password: string) { await this.checkUserExists(email); const signupVerifyToken = uuid.v1(); await this.saveUser(name, email, password, signupVerifyToken); await this.sendMemberJoinEmail(email, signupVerifyToken); } ... }
-
'dev > NestJS' 카테고리의 다른 글
[NestJS] 기본 개념 (0) | 2022.01.02 |
---|