Oi pessoal!
Tive um problema na hora de verificar o token JWT, que lançou a seguinte erro:
{
"timestamp": "2023-09-28T21:51:05.802+00:00",
"status": 500,
"error": "Internal Server Error",
"message": "Token inválido ou expirado! com.auth0.jwt.exceptions.JWTDecodeException: The input is not a valid base 64 encoded string.",
"path": "/medicos"
}
Isso se deu porque na hora de trocar o prefixo do Bearer para uma string vazia, estava retornando o token com um espaço no inicio da string. Dessa forma:
" eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhbmEuc291emFAdm9sbC5tZWQiLCJpc3MiOiJBUEkgVm9sbC5tZWQiLCJleHAiOjE2OTU5NDE3NTR9.BbKZ4KR3gkzysdqpefdmGvR0SPIHboi6t51n7y2mIQ0"
Para resolver isso, basta chamar o .trim()
após o replace()
:
authorizationHeader.replace("Bearer", "").trim();
Com isso, o trim vai remover os espaços em branco da string.
Bom, espero ter ajudado. Abraço!