natanbueno / fp-jsonwebtoken

fp-jsonwebtoken é um conjunto de bibliotecas para gerar, assinar e validar TOKENS JWT no fpc/lazarus.
https://github.com/natanbueno/fp-jsonwebtoken
MIT License
19 stars 2 forks source link

jwt invalid #1

Closed ds-sampaio closed 2 years ago

ds-sampaio commented 2 years ago

Estou utilizando a sua biblioteca e ao gerar o jwt que vou validar no jwt.io acusa como jwt invalid. Ha algo que possa está fazendo para corrigir?

natanbueno commented 2 years ago

Olá que bom que esteja usando, é uma pena está com problemas.. irei tentar ajudar blz, vc está usando o projeto exemplo ou está testando com sua implementação de uso próprio, se sim me envia o trecho de código que vc está gerando o jwt.

ds-sampaio commented 2 years ago

Obrigada por dedicar seu tempo para me ajudar, fico feliz. Na verdade estou utilizando o seu codigo exemplo, gero por ele ai copio o token e testo no jwt.io

Em ter., 1 de mar. de 2022 às 10:17, Natan Bueno @.***> escreveu:

Se quiser pode me enviar no email seu exemplo; @.***

— Reply to this email directly, view it on GitHub https://github.com/natanbueno/fp-jsonwebtoken/issues/1#issuecomment-1055434130, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATTO27GD67DDLQDQBYQBFD3U5YKGXANCNFSM5PRSFHYQ . You are receiving this because you authored the thread.Message ID: @.***>

natanbueno commented 2 years ago

Olá o motivo do seu problema, é que faltou no jwt.io você informar a sua chave secreta nesse caso do exemplo seria bob-esponja mas pode ser qualquer coisa. Dentro do jwt.io ao lado direto no Verify Signature vai ter um campo para vc editar chamado your-256-bit-secret é aí nesse campo que vc pode preencher a sua chave.

ds-sampaio commented 2 years ago

Olá, tudo bem? obrigada pela atenção, eu ate fiz isso, mas não marquei a opção de secret base64 encoded Por acaso na sua biblioteca tem como comprimir token tal como é feito na opção secret base64 encoded do jwt.io? Percebi que a rotina CompactToken concatena o header o payload e a signature, e para conseguir validar no jwt.io precisa compactar para base64 pelo o que entendi.

natanbueno commented 2 years ago

Isso mesmo,o Header é encodado em Base64 Url concatenado com '.' + PayLoad Encodado em Base Url 64, na qual vai formar o content (conteúdo) desse token.

Esse content a gente usa para criar a signature do token nesse caso com algoritmo HMAC SHA256 e por fim a gente pega essa signature e encoda ela também com Base64 Url.

E por fim o json web token completo é o: Header + '.' + PayLoad + '.' + Signature, todos encodado.

Para entender melhor como funciona o JWT, sugiro dar uma olhada: https://datatracker.ietf.org/doc/html/rfc7519

ds-sampaio commented 2 years ago

Fico grata pela ajuda, verei o conteúdo. Obrigada Em qua., 2 de mar. de 2022 às 12:24, Natan Bueno @.***> escreveu:

Isso mesmo,o Header é encodado em Base64 Url concatenado com '.' + PayLoad Encodado em Base Url 64, na qual vai formar o content (conteúdo) desse token.

Esse content a gente usa para criar a signature do token nesse caso com algoritmo HMAC SHA256 e por fim a gente pega essa signature e encoda ela também com Base64 Url.

E por fim o json web token completo é o: Header + '.' + PayLoad + '.' + Signature, todos encodado.

Para entender melhor como funciona o JWT, sugiro dar uma olhada: https://datatracker.ietf.org/doc/html/rfc7519

— Reply to this email directly, view it on GitHub https://github.com/natanbueno/fp-jsonwebtoken/issues/1#issuecomment-1057053703, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATTO27EOTN5RLUEILGYNU4DU56BZ7ANCNFSM5PRSFHYQ . You are receiving this because you authored the thread.Message ID: @.***>