NestJS/ JWT토큰생성

25gStroy·2022년 1월 7일
0

Nest.js

목록 보기
8/23

JWT 에 대한 내용은 문서를 참고하시거나 제 티스토리블로그에 정리 돼있습니다.

필요한 모듈

@nestjs/jwt
//nestjs에서 jwt를 사용하기 위해 필요한모듈
@nestjs/passport
//nestjs에서 passport를 사용하기위해 필요한 모듈
passport
//passport모듈
passport-jwt
//jwt모듈
  • 모듈 설치 명령어
npm install @nestjs/jwt @nestjs/passport passport passport-jwt --save

애플리케이션에서 JWT모듈에 등록하기

@Module({

  imports: [JwtModule.register({
    secret:"Secret1234",//시크릿텍스트
    signOptions:{
      expiresIn: 60*60,//토큰유지시간
    }
  }),

애플리케이션에 passport모듈 등록하기

PassportModule.register({defaultStrategy:'jwt'})

사용예시

먼저 DI를 해줘야 service해줄때 사용할 수 있다.

  async signIn(
    authcredentilDto: AuthCredentialDto,
  ): Promise<{ accessToken: string }> {
    const { username, password } = authcredentilDto;
    const user = await this.userRepository.findOne({ username });
    if (user && (await bcrypt.compare(password, user.password))) {
      //유저토큰 생성(Secret + Paylozd)
      const payload = { username }; //패이로드에 중요한 정보는 넣으면 안된다.
      const accessToken = await this.jwtService.sign(payload); //여기서 알아서 payload를합쳐서 만들어준다.
      return { accessToken };
    } else {
      throw new UnauthorizedException('login failed');
    }
  }
profile
애기 개발자

0개의 댓글