2020-05-07 11:04:15 +00:00
|
|
|
import { findValueInEnum } from "@saleor/misc";
|
2020-05-14 09:30:32 +00:00
|
|
|
import { GraphQLError } from "graphql";
|
2020-05-07 11:04:15 +00:00
|
|
|
|
|
|
|
export enum JWTError {
|
2020-07-21 16:51:36 +00:00
|
|
|
invalid = "InvalidTokenError",
|
|
|
|
invalidSignature = "InvalidSignatureError",
|
2022-06-21 09:36:55 +00:00
|
|
|
expired = "ExpiredSignatureError",
|
2020-05-07 11:04:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export function isJwtError(error: GraphQLError): boolean {
|
2020-08-18 15:20:06 +00:00
|
|
|
let jwtError: boolean;
|
|
|
|
try {
|
|
|
|
jwtError = !!findValueInEnum(error.extensions.exception.code, JWTError);
|
|
|
|
} catch (e) {
|
|
|
|
jwtError = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return jwtError;
|
2020-05-07 11:04:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export function isTokenExpired(error: GraphQLError): boolean {
|
|
|
|
return error.extensions.exception.code === JWTError.expired;
|
|
|
|
}
|