Introdução ao JWT: JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e autônoma de transferir informações de forma segura entre partes em objetos JSON. Essas informações podem ser verificadas e confiáveis por meio de assinaturas digitais. JWTs podem ser assinados usando segredos (usando o algoritmo HMAC) ou usando os pares de chaves públicas/privadas do RSA.
Alguns cenários onde os JSON Web Tokens são úteis:
Verificação de Identidade:Esse é o caso mais comum de usar JWTs. Uma vez que o usuário faz login, cada requisição subsequente conterá um JWT que permite ao usuário acessar as rotas, serviços e recursos permitidos por esse token. O login único é um recurso amplamente utilizado hoje devido ao seu baixo overhead e à facilidade de uso em diferentes domínios.
Intercâmbio de informações:Tokens Web JSON são uma ótima forma de transferir informações de forma segura entre partes. Como os JWTs podem ser assinados – por exemplo, usando pares de chaves pública/privada – é possível ter certeza de que o remetente é quem ele afirma ser. Além disso, como a assinatura é calculada usando cabeçalhos e payloads, você também pode verificar se o conteúdo não foi adulterado.
Site Oficial:O login do hiperlink está visível.
Analise informações sobre JWT online:O login do hiperlink está visível.
Analisar os parâmetros do JWT online O login do hiperlink está visível.
Meu entendimento sobre JWT abaixo está errado, por favor, me dê algum conselho
Primeiramente, essa coisa não é recomendada para você usá-la no site do MVC, você pode usar na webapi, o posicionamento disso é API, não uma sessão do site substituto!
asp.net tutorial de uso do webapi:O login do hiperlink está visível.Não vou refazer a roda, olhando para o que este artigo está escrito, tudo bem.
A composição do JWT
O JWT é composto por três partes: Cabeçalho, Carga Útil e Assinatura, com símbolos de pontos entre eles para formar a forma xx.yy.zz.
Note que, para tokens assinados, essa informação pode ser lida por qualquer pessoa, apesar da proteção contra adulteração. Não coloque informações sensíveis no conteúdo válido ou nos elementos de cabeçalho do JWT, a menos que estejam criptografados.
Por exemplo:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [assinatura] Em termos simples, qualquer um pode descriptografar esse token, mas a autenticidade dessa informação não pode ser verificada; apenas o servidor que gerou esse token pode verificar a autenticidade, então não armazene informações sensíveis nele.
Existe um problema aqui, ou seja, se o usuário muda a senha ou o usuário é proibido de fazer login, como o JWT pode resolver a validade do token?
Minha própria ideia é adicionar uma string tipo guid na seção de Payload e, ao verificar a identidade do usuário, não só verificar o jwt, mas também as informações do payload no jwt, podemos controlar a validade controlando o cache.
|