관리 메뉴

Mini

[Nest JS] JWT => accessToken 발급 본문

JS/Nest.js

[Nest JS] JWT => accessToken 발급

Mini_96 2024. 8. 18. 22:09

* 개념

 

 

 

* 구현

필요한 모듈들 설치하기

npm install @nestjs/jwt @nestjs/passport passport passport-jwt --save


@nestjs/jwt
- nestjs에서 jwt를 사용하기 위해 필요한 모듈
@nestjs/passport
- nestjs에서 passport를 사용하기 위해 필요한 모듈
passport
- passport 모듈
passport-jwt
- jwt 모듈
npm install @nestjs/jwt @nestjs/passport passport
passport-jwt --save

 

* 모듈에 import => app에서 사용가능토록

@Module({
  imports:[
    JwtModule.register({
      secret:'Secret1234',
      signOptions:{
        expiresIn: 60*60,
      }
    }),

@Module({
  imports:[
    PassportModule.register({
      defaultStrategy: 'jwt',
    }),

 

* 서비스

async signIn(authCredentialDto : AuthCredentialsDto) {
    ...

    //입력받은 비밀번호랑 저장된 비밀번호랑 비교
    if(user && (await bcrypt.compare(password, user.password))){
      //유저 토큰 생성 (Secret + Payload)
      const payload = {username} //중요한정보 넣으면안됨
      const accessToken = await this.jwtService.sign(payload); //payload + secret해서 알아서 토큰만들어줌

      return { accessToken }; //객체로 리턴
    }
   ...

  }

 

 

결과