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() 안써도 무한로딩 된다.