Bring back catch TokenExpiredError in backend error-handling middleware

This commit is contained in:
Tuan Dang
2023-07-07 13:01:38 +07:00
parent c191eb74fd
commit 53efdac0f0

View File

@@ -1,6 +1,7 @@
import * as Sentry from "@sentry/node";
import { ErrorRequestHandler } from "express";
import { InternalServerError } from "../utils/errors";
import { TokenExpiredError } from "jsonwebtoken";
import { InternalServerError, UnauthorizedRequestError } from "../utils/errors";
import { getLogger } from "../utils/logger";
import RequestError, { LogLevel } from "../utils/requestError";
import { getNodeEnv } from "../config";
@@ -19,7 +20,9 @@ export const requestErrorHandler: ErrorRequestHandler = async (
}
//TODO: Find better way to type check for error. In current setting you need to cast type to get the functions and variables from RequestError
if (!(error instanceof RequestError)) {
if (error instanceof TokenExpiredError) {
error = UnauthorizedRequestError({ stack: error.stack, message: "Token expired" });
} else if (!(error instanceof RequestError)) {
error = InternalServerError({
context: { exception: error.message },
stack: error.stack,