인프런 커뮤니티 질문&답변

dhj100님의 프로필 이미지
dhj100

작성한 질문수

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

BasicTokenGuard 구현해보기

[질문] 토큰 만료에 대한 예외처리 질문

해결된 질문

작성

·

516

0

안녕하세요, 현재 강의 를 듣고 있는 수강생입니다.

BearerTokenGuard를 작성하고, 토큰 유효기간이 지난 경우에 대해서도

테스트 상황을 가정하여 전날 만들어둔 access token을 authorization header에 넣어

테스트 해보았습니다. 그런데 verifyToken api에 try,catch문이 없어서 500 코드의 에러가 발생하더라구요.

그래서 일단 401 error를 내는게 맞는것 같아서 아래와 같이 작성을 했는데, verify의 결과가 무조건 토큰이

만료된 경우 1가지인지 확실치 않아, 잘 작성된 코드인지 모르겠어서 질문 드립니다.

어떻게 예외처리 코드를 작성하면 좋을까요?

 


    /* 
  해당 API는 토큰을 검증하는 API 입니다.
  */
  verifyToken(token: string) {
    try {
      const result = this.jwtService.verify(token, {
        secret: JWT_SECRET,
      });

      return result;
    } catch (error) {
      // to-do : 나중에 최적화
      throw new UnauthorizedException('만료된 토큰입니다. 재발급해주세요');
    }
  }

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

catch안에 error 객체의 메세지를 읽어보시면 상황별로 에러가 다르게 던져집니다.

아래 링크에 에러 정리도 따로 돼있습니다.

https://github.com/auth0/node-jsonwebtoken#errors--codes

감사합니다!

dhj100님의 프로필 이미지
dhj100
질문자

감사합니다!

dhj100님의 프로필 이미지
dhj100

작성한 질문수

질문하기