inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

토큰 재발급 로직 코딩하기

jwtService.verify() 사용 시 ESLint 관련 경고가 발생합니다

170

ssavengers

작성한 질문수 8

0

코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다!

[코드팩토리 디스코드]
https://inf.run/54jjz

 

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요

rotateToken(token: string, isRefreshToken: boolean) {
    const decoded = this.jwtService.verify(token, {
      secret: JWT_SECRET,
    });

여기를 비롯해서 다양한곳에서

Unsafe assignment of an any value라는 오류가 뜨는데 강사님 영상에서는 따로 이런 에러가 발생하지 않더라고요. 혹시 강의에서 ESLint 설정을 약하게 해두신 건가요? 아니면 verify 결과에 타입을 명시해줘야 하는 건가요?

 

javascript typescript rest-api nestjs backend

답변 2

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. ssavengers님.

JWT와 관련한 ESLint 경고 메시지와 관련하여 해결 방법에 대해 설명드리겠습니다.

ESLint에서 Unsafe assignment of an 'any' value라는 오류는 TypeScript가 타입 검사를 제대로 수행할 수 없는 경우 발생하는 경고입니다. 이는 jwtService.verify 메서드가 any 타입을 반환하고 있기 때문입니다. 즉, 타입이 불명확하다 보니 안전하지 않은 할당 경고가 발생하는 것입니다.

여기에서 해결 방법은 두 가지가 있습니다:

  1. 타입 확장 또는 명시: jwtService.verify의 반환 값을 지정된 타입으로 할당하세요. 이는 TypeScript에게 반환 값의 타입을 명확히 알려 오류를 방지합니다. 예를 들어, 반환되는 객체의 구조를 알고 있다면 명시할 수 있습니다.

    interface JwtPayload {
      email: string;
      sub: string;
      type: string;
    }
    
    
    rotateToken(token: string, isRefreshToken: boolean) {
      const decoded = this.jwtService.verify<JwtPayload>(token, {
        secret: JWT_SECRET,
      });
    }
    
  2. ESLint 룰 조정: 프로젝트의 ESLint 설정 파일에서 해당 경고를 비활성화하거나 완화할 수 있습니다. 하지만 이는 타입의 명확성을 해치는 방식이므로 권장되지 않습니다.

강의에서 ESLint를 특별히 약하게 설정했는지는 강의를 직접 확인해야 하지만, 일반적으로 타입스크립트와 ESLint를 함께 사용하는 경우 반환 타입을 명시하는 것이 좋은 습관입니다.

아래 URL에서 비슷한 토론을 참고하시기 바랍니다:
- jwtService.verify() 사용 시 타입 명시 문제

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

코드팩토리

안녕하세요!

따로 추가로 설정해둔 부분은 없습니다.

제 레포지토리 lint 설정과 비교했을때 다르게 설정 돼있으신가요?

추가로 이전 질문에 답변 드린 것 처럼 TS 서버 재시작 확인 부탁드립니다.

감사합니다!

cascade 질문

0

38

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

45

1

process.env port key 에러

0

45

1

추상화

0

48

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

94

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

56

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

69

1

app.controller app.service 는 지워도되나요?

0

69

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

78

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

64

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

102

2

socket connect 오류

0

96

2

강의를 들으면서 궁금한 점

0

97

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

98

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

344

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

76

2

User 데코레이터 버그 수정 전달드립니다.

0

67

1

git 주소 부탁드립니다.

0

112

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

84

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

146

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2