Today I Learned/TIL 08

2023 - 08 - 09 nest 미들웨어에서 무한로딩 에러 해결

sangwoo_rhie 2023. 8. 14. 20:41

데이터는 CRUD 모두 들어갔고 , 확인도 되지만 , 무한로딩될 때 고치는 법 
req = 요청 , res = 응답

 

Controller

 @Post('/member')
  async createMember(@Body() MemberData: createMemberDto, @Request() req) {
    const myUid = req.user.uid;
    const result = await this.MembersService.createMember(MemberData, myUid);
    return { message: '멤버 추가에 성공하였습니다', data: result };
  }
@Injectable()
export class AuthMiddleware implements NestMiddleware {
  constructor(private jwtService: JwtService) {}

  async use(req: any, res: any, next: Function) {
    const authHeader = req.cookies;
    if (!authHeader) {
      throw new UnauthorizedException('JWT not found');
    }

    let token: string;
    try {
      const authkey = authHeader.Authentication;
      const [authType, token] = authkey.split(' ');
      if (authType !== 'Bearer' || !token) {
        throw new UnauthorizedException('It is not Bearer type of token or abnormal token');
      }

      const payload = await this.jwtService.verify(token);
      req.user = payload;

      next();
    } catch (err) {
      throw new UnauthorizedException(`Invalid JWT: ${token}`);
    }
  }
}

 

요청을 하는 것이므로, res가 아닌 req를 써야 한다.

참고로 next() 안써도 무한로딩 된다.