Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.