기본: JWT - JSON 웹 토큰
JWT
예?
Éum token gerado a partir de dados "pessoais", esse que pode ser trafegado entre aplicações ao se realizar requisições a APIs. As informações contidas no token são públicas e podem ser lidas por qual quer um que o possua, porém há um mecanismo de segurança que faz com que somente quem tenha a senha, possa modificá-lo.
오 케 파즈?
De forma geral os tokens podem ser usados para diversas finalidades, afinal eles são somente uma estrutura segura para o trafego de informações, porém seu uso mais comum é para autorização de usuários em diversos serviços.
에스트루투라
헤더
O Header do token irá conter duas propriedades,
alg
para definir o algoritmo de hash e typ
para definir o tipo de token, nosso caso será JWT
.{
"alg": /*algoritmo de hash*/,
"typ": "JWT",
}
{
"alg": "HS256",
"typ": "JWT",
}
유효 탑재량
O payload irá conter os dados do usuário, esses que não devem ser dados sensíveis (CPF, cartão, endereço, etc), apenas o essencial para dar ao usuário a autorização necessária para navegar e interagir com aplicação.
{
"username": "Big John",
"name": "John Doe",
"admin": false,
"isPrime": true
}
서명
É a assinatura utilizada para validar o token, dessa forma conseguimos verificar se o token recebido do cliente é igual ao que enviamos anteriormente, caso não sejam iguais, o token é thinkado inválido.
// essa parte é a concatenação, criptografada, do Header + Payload e será gerada para nós pelo JWT.
우산도 또는 JWT
설치
Antes de começarmos a Implementer o JWT, precisamos instalar a biblioteca que irá gerar e validar os tokens, para isso usamos o comando:
npm i jsonwebtoken
npm i -D @types/jsonwebtoken # caso usar TypeScript será necessário instalar os pacotes a parte
구성
Tendo instalado e importado o JWT para nosso arquivo, iremos configurá-lo. Nas configurações podemos definir o algoritmo de hash, o período de validation, entre outas opções.
configurações는 Objeto JS com algumas chaves pré existentes로 구성됩니다. Consultar a documentação para as chaves.
const jwtConfig = {
expiresIn: '4d', // <- Faz com que o token expire depois de 4 dias
algorithm: 'HS256', // <- Indica o algoritmo de hash HS256 para criptografia
};
크리안도
Após termos definido nossas configurações iremos chamar o método
.sign()
para realmente criarmos nosso token, esse método irá receber os dados, o secret e as configurações como argumentos.const jwt = require('jsonwebtoken'); // <- importação do jwt
const secret = 'meuSuperSegredo'; // Considerações logo abaixo*
const user = { email: '[email protected]', username: 'Roxo' }; // <- usuário fake para demonstração
jwt.sign({ data: user }, secret, jwtConfig); // <- data é a chave padrão do JWT para passarmos os dados
*O secret deve ser armzenado em variáveis de ambiente para maior segurança da aplicação, caso o declaremos hardcoded, estaremos deixando nossa vulnerável e nossos tokens/usuários em risco.
발리단도
Para validarmos um token basta chamarmos o método
.verify()
, passando o token em questão eo o secret utilizado como argumentos. JWT의 이전 문서를 참조할 때 주의해야 할 사항은 다음과 같습니다.유효하지 않은 토큰, 유효 기간 만료, próprio método irá nos retornar um erro, logo precisamos trabalhar essa validação dentro de um bloco
try/catch
, ou algo equivalente./*
Assim como na criação, na validação do token precisamos importar o jwt e o secret
*No caso desse exemplo seria necessário criar uma outra constante para definir o secret (NÃO RECOMENDADO)
*/
jwt.verify(token, secret);
Reference
이 문제에 관하여(기본: JWT - JSON 웹 토큰), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gabrielhsilvestre/o-basico-jwt-json-web-token-2akc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)