[rest] Em poucas palavras, o que é JWT?
valendo DevUPsss galera, quem poderia me ajudar a montar essa definição ;-)
abraçosss
abraçosss
Gladstone Matos
Curtidas 3
Melhor post
Vinnicius Gomes
29/01/2019
JWT (JSON Web Token), ele é um sistema de transferência de dados que pode ser enviado via URL, POST ou em um cabeçalho HTTP (header) de maneira "segura", essa informação é assinada digitalmente, por exemplo assinada com o algoritmo HMAC (https://pt.wikipedia.org/wiki/HMAC), ou um par de chaves pública/privada usando RSA (https://pt.wikipedia.org/wiki/RSA_(sistema_criptogr%C3%A1fico)).
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
Este será a primeira parte do JSON codificado em base64 para formar o JWT
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:A assinatura é usada para verificar que o emissor da "JWT", é realmente "quem" se diz ser e também para verificar se a mensagem não foi alterada ao longo do caminho.
O resultado seria algo como:
Um exemplo de envio via header no HTTP:
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
{ "alg": "HS256", "typ": "JWT" }
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
{ "sub": "1234567890", "name": "Nome", "admin": true }
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:
HMACSHA256( base64UrlEncode(Cabeçalho) + "." + base64UrlEncode(Payload), secret)
O resultado seria algo como:
(Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Um exemplo de envio via header no HTTP:
GET /foo/bar HTTP/1.1 Host: www.exemplo.com Authorization: Bearer (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
GOSTEI 4
Mais Respostas
Gladstone Matos
29/01/2019
JWT (JSON Web Token), ele é um sistema de transferência de dados que pode ser enviado via URL, POST ou em um cabeçalho HTTP (header) de maneira "segura", essa informação é assinada digitalmente, por exemplo assinada com o algoritmo HMAC (https://pt.wikipedia.org/wiki/HMAC), ou um par de chaves pública/privada usando RSA (https://pt.wikipedia.org/wiki/RSA_(sistema_criptogr%C3%A1fico)).
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
Este será a primeira parte do JSON codificado em base64 para formar o JWT
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:A assinatura é usada para verificar que o emissor da "JWT", é realmente "quem" se diz ser e também para verificar se a mensagem não foi alterada ao longo do caminho.
O resultado seria algo como: (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Um exemplo de envio via header no HTTP:
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
{ "alg": "HS256", "typ": "JWT" }
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
{ "sub": "1234567890", "name": "Nome", "admin": true }
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:
HMACSHA256( base64UrlEncode(Cabeçalho) + "." + base64UrlEncode(Payload), secret)
O resultado seria algo como: (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Um exemplo de envio via header no HTTP:
GET /foo/bar HTTP/1.1 Host: www.exemplo.com Authorization: Bearer (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
perfect Vinnicius super obrigado por compartilhar o conhecimento com a comunidade! oootimo :)))
GOSTEI 2
Vinnicius Gomes
29/01/2019
JWT (JSON Web Token), ele é um sistema de transferência de dados que pode ser enviado via URL, POST ou em um cabeçalho HTTP (header) de maneira "segura", essa informação é assinada digitalmente, por exemplo assinada com o algoritmo HMAC (https://pt.wikipedia.org/wiki/HMAC), ou um par de chaves pública/privada usando RSA (https://pt.wikipedia.org/wiki/RSA_(sistema_criptogr%C3%A1fico)).
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
Este será a primeira parte do JSON codificado em base64 para formar o JWT
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:A assinatura é usada para verificar que o emissor da "JWT", é realmente "quem" se diz ser e também para verificar se a mensagem não foi alterada ao longo do caminho.
O resultado seria algo como: (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Um exemplo de envio via header no HTTP:
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
perfect Vinnicius super obrigado por compartilhar o conhecimento com a comunidade! oootimo :)))
Um exemplo de situação que ele pode ser usado é a autenticação, uma vez que o usuário está conectado, cada pedido que vier irá incluir o JWT, permitindo que o usuário continue acessando serviços e recursos que são foram liberados com tal token (Single sign-on (SSO)).
A estrutura do JWT é em 3 partes divididas por pontos:
- Cabeçalho
Consiste em 2 partes geralmente, o tipo do token, que é JWT e o tipo do algorítimo de HASH, como por exemplo HMAC SHA256 ou RSA, exemplo:
{ "alg": "HS256", "typ": "JWT" }
- Payload (carga de dados ou os dados enviados)
Esta é a segunda parte do token, ele contem os "pedidos". Esse "pedidos" são declarações sobre uma entidade (geralmente, o usuário) e metadados adicionais e existem 3 tipos: reserved, public, e private claims. Um exemplo:
{ "sub": "1234567890", "name": "Nome", "admin": true }
- Assinatura
Para gerar a assinatura você deve usar o Cabeçalho e o Payload codificando eles, usando o algorítimo definido no cabeçalho e assinar, no exemplo do Cabeçalho usamos HS256 (HMAC SHA256), então deve ficar algo como:
HMACSHA256( base64UrlEncode(Cabeçalho) + "." + base64UrlEncode(Payload), secret)
O resultado seria algo como: (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Um exemplo de envio via header no HTTP:
GET /foo/bar HTTP/1.1 Host: www.exemplo.com Authorization: Bearer (Cabeçalho em base64).(Payload em base64).(Assinatura em base64)
Ou seja por ser algo que é transmitido via HTTP pode ser usado com qualquer linguagem que suporte os requisitos mínimos para gerar o TOKEN e enviar uma requisição HTTP, como Java, C#, PHP, Python.
Site: https://jwt.io
perfect Vinnicius super obrigado por compartilhar o conhecimento com a comunidade! oootimo :)))
Imagina! É um prazer ajudar, espero que tenha conseguido ajudar no seu entendimento sobre essa tecnologia
GOSTEI 1