leaky-ships/leaky-ships/lib/backend/jwtVerifyCatch.ts
2023-04-10 22:08:16 +02:00

40 lines
892 B
TypeScript

import type { TokenType } from "@prisma/client"
import type { rejectionError } from "./errors"
export default function jwtVerifyCatch(
tokenType: TokenType,
err: Error
): rejectionError {
switch (err.message) {
case "jwt expired":
return {
message: `JWT (${tokenType}) expired!`,
statusCode: 403,
solved: true,
type: "warn",
}
case "invalid signature":
return {
message: `Invalid JWT (${tokenType}) signature! Token: `,
statusCode: 401,
solved: false,
}
case "jwt must be provided":
return {
message: `No JWT (${tokenType}) given.`,
statusCode: 401,
solved: true,
type: "warn",
}
default:
console.log(err)
return {
statusCode: 500,
message: `Unknown error on 'JWT.verify()'.`,
solved: false,
}
}
}