thrown when the tokens is expired
thrown when the tokens will expire before it becomes valid usually when the nbf claim is greater than the exp claim
thrown when the algorithm used to sign the token is invalid
thrown when the tokens signature doesn't match the data signature
thrown when there are issues with the token
thrown when the token has an incorrect format
thrown when the token is not valid yet or in other words when the nbf claim time is before the current time
thrown when attempting to encode or decode a token with an unsupported algorithm
thrown when there are issues with token verification