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

[Dúvida] verificacao nao passa pelo if no bloco try e catch

bom ja consigo gerar o token com payload tudo ok, porem quero que quando esse usuario que esta usando o token seja o mesmo id que gerou esse token, se nao, da erro, somente o que gerou o token original pode usar, porem acredito que fiz algo certo, porem nao passa pelo meu if, sempre pula o if e vai direto pro catch(error) e nao verifica. meus codigos:

payload pro token signAsyn: const payload: payload = { id: usuario.id, email: usuario.email , senha: usuario.senha }

meu service (rabbitmq):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade meu messagePatern(rabbitmq): Insira aqui a descrição dessa imagem para ajudar na acessibilidademeu guard onde eu tento pegar esse id no parametro do postman e jogar pro servico no verifyToken: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

6 respostas

tambem meu requisicao.params esta certo? foi o que o chatGPT sugeriu, se nao, o que eu deveria substituir

Se ele cai no catch, deu algum erro. Coloca para printar no console o error para que vc consiga saber qual foi o erro que aconteceu.

Sobre o id do usuário, cuidado que ele vem em string, se vc comparar com um id numérico usando !== ele vai dar falso. Teria que deixar os dois do mesmo tipo ou usar !=. É bom colocar console logs para ver como estão vindo esses parâmetros.

poise so agora eu percebi que não dei log no que eu to recebendo do requisacao param, e também do usuario.id, quando eu voltar vou dar um log, acho que meu usuario ta vindo nulo, um dos parametros no if, e por isso não ta funcionando meu if

opa fran, eu dei log, fiz um monte de coisa aqui, porém só me retorna undefined, esse id que eu to tentando pegar do parametro do postman, e só um id depois de http://localhost:4000/o id do usuario usando o token

solução!

Como vc disse antes, o payload é:

payload pro token signAsyn: const payload: payload = { id: usuario.id, email: usuario.email , senha: usuario.senha }

Certo? No verificadorDeToken linha 6, vc tá fazendo payload.usuarioID. Ele vem com isso mesmo? Não seria o campo id? Vc tá fazendo um destructuring do payload inteiro, pegando jwt e usuarioID, mas não existe essa segunda chave.

É melhor tentar printar o payload inteiro no console, pra ver se tá pegando os campos certos.

Eu nunca mexi com o framework que vc tá usando, então não sei a maneira correta de pegar o payload. Se não for assim do payload, talvez seria outro atributo ou método nesse RmqContext.

voce e uma genia, realmente meu jwt vem sozinho, nao vem acompanhado de um id, ao usar outro payload com id: string, ele pegou os dois de uma vez, agora consigo progredir, vlw mesmo, foda o raciocinio que voce teve tao rapido sem saber o framework que eu uso, vlw muito