Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Token JWT invalido ou expirado/403 Forbidden

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Token service![Insira aqui a descrição dessa imagem para ajudar na acessibilidade] Security FilterInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Security config (https://cdn1.gnarususercontent.com.br/1/1335177/206f572c-b457-4584-b580-94d169cf0646.png)

terminal Insira aqui a descrição dessa imagem para ajudar na acessibilidade

10 respostas

Oi!

Coloca no catch do método getSubject essa linha para imprimir o token recebido:

System.out.println("Token recebido:" +tokenJWT);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Token recebido

Está aí o problema então. O token está chegando como undefined.

Vou chutar que você está chamando a API de uma aplicação frontend com JavaScript (Angular, React, etc.). O problema deve estar no código JS que recupera o token e adiciona no cabeçalho Authorization.

Hum...eu estou usando o Java + o SpringBoot,Tem uma parte no curso que o Sr cita que o token deve expirar dentro de 2h, aacredito que possa ser isso..

Verifica se o token está sendo enviado no Insomnia

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Está habilitado e estou enviando Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Blz, mas na requisição de login o token não deve ser enviado, pois essa é a requisição para receber um token.

Talvez seja isso então.

Eu mandava sem o token, porem o forbiden ainda permanece...Como eu poderia conseguir um refrash token ou gerar um novo token? eu não consigo listar os medicos pelo insomnia

É na requisição de login mesmo para pegar um novo token. Mas nela você não deve enviar um token.

Verifica se tem algo de errado com o seu código então, pois não era para dar erro 403. Veja aqui também os erros comuns: https://cursos.alura.com.br/course/spring-boot-aplique-boas-praticas-proteja-api-rest/task/130894

solução!

Prof, o Erro estava na senha que havia passado para o usuario, eu defini o metodo "PasswordEncoder" porem não utilizei o bcrypt, e sim uma senha generica "123456" quando inseri o usuario no banco de dados, após inserir um novo usuario utilizando o bcrypt a requisição funcionou perfeitamente.