.env 파일이 있는 JWT 비밀이지만 NESTJS에서 오류가 발생합니다.

3124 단어

오류가 발생했습니다



최근 프로젝트를 시작하면서 NestJS 를 연구하게 되었다.JWT 모듈을 .env 파일을 사용하여 문제를 해결하기 위해


문제 해결 방법



아무리 코드를 뒤져봐도 어떤 문제가 겉보기엔 아무래도 구글링을 시작했을 때
다음과 같은 해결책을 찾을 수 있었습니다.

코드 이전



기존의 내 코드는 다음과 열입니다.

// in auth.module.ts
JwtModule.register({
      secret : process.env.JWT_SECRET,
      signOptions: {
        expiresIn: 60 * 60
      }      
    }),


이 코드는 .env에 있는 JWT Secret을 불러와 사용하는 코드로,
env 변수를 불러오는 관련 애플리케이션이 실행되는 것은 잔디 처리라는 것을 알게 되었습니다.

따라서 JwtModule 에서 다음과 같은 방법을 지원했다.JwtModule.registerAsync({})
적용되는 논의는 환경논리를 설명할 때까지 모듈 설정을 유보할 수 있도록 도와줍니다.

따라서 다음과 같이 작성하여 해결했습니다.

코드 후




JwtModule.registerAsync({
      // .env 에 등록되어 있는 것을 가져오는것이 비동기 작업이므로, 초기화 시에 env 요소를 못불러온 상태일 수 있음.
      // 따라서 registerAsync, ConfigService 를 사용해 동기적으로 작업함
      inject: [ConfigService],
      useFactory: (config: ConfigService) => ({
        secret: config.get<string>('JWT_SECRET'),
        signOptions : {
          expiresIn: 60 * 60
        }
      })  
    }),


반전 같은 뉴비 개발자들에게 도움이 되고자 합니다.
  • 이 글의 Google링 결과 원문을 복구하지 못했습니다. 검색대로를 기록합니다.
  • 좋은 웹페이지 즐겨찾기