Skip to content

2023 03 30 개발 일지

Jinho Kim edited this page Apr 2, 2023 · 14 revisions

1. 진행 및 완료 사항

createUser(회원가입) 메서드에서 중복된 아이디일 경우 에러 처리.

signIn(로그인)메서드 구현

  • 로그인도 회원가입 때처럼 queryBuilder를 사용해 userId에 맞는 데이터를 가져오고 없다면 에러,
    있다면 로그인 처리를 해주며 된다

Guard 데코레이터 구현 -> jwt 토큰이 검증되지 않는다면 아래 메서드를 실행하지 않게 하는 데코레이터

  • nestjs의 CanActivate, jwtService을 사용
  • Guard를 전역으로 자동으로 배치하게 하여, Global 데코레이터가 없는 메서드는 로그인된 상태가 아니라면 전부 실행이 안되도록 함

Public 데코레이터 구현 -> Guard를 스킵해주는 데코레이터

  • 로그인된 상태가 아니어도 되는 메서드들에 적용함 EX) 회원가입, 로그인 등등

2. 알게 된 점

createUser(회원가입) 메서드

  • repository에 createQueryBuilder가 들어있어서 아래와 같은 방식으로 쉽게 확인할 수 있었다.
    const userId = createUserDto.userId;
    const existUser = await this.userRepository
      .createQueryBuilder('user')
      .where('user.userId = :userId', { userId })
      .select(['user.userId'])
      .getOne();
    console.log(existUser);
    if (existUser) {
      throw new HttpException('User id already exists', HttpStatus.BAD_REQUEST);
    }

서버에서 jwt 토큰을 생성하고, 검증을 하는 방식

3. TODO

Todo list

채팅방

게시판