17.1. Autenticação e Autorização em APIs NodeJS: Autenticação com JWT

Autenticação e autorização são elementos cruciais na criação de APIs em NodeJS. Elas garantem a segurança dos dados manipulados pela API, permitindo apenas que usuários autorizados acessem determinados recursos. Este capítulo do e-book se concentrará na autenticação com JWT (JSON Web Tokens).

O que é JWT?

JSON Web Tokens (JWT) é um padrão aberto (RFC 7519) que define uma maneira compacta e autônoma de transmitir informações entre partes como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. JWTs podem ser assinados usando um segredo (com o algoritmo HMAC) ou um par de chaves pública/privada usando RSA ou ECDSA.

Por que usar JWT para Autenticação?

JWTs são uma boa opção para autenticação por várias razões. Primeiro, eles são stateless. Isso significa que não precisamos armazenar informações de sessão no servidor ou em um banco de dados. Em vez disso, todas as informações necessárias são armazenadas no token e são enviadas ao servidor a cada solicitação. Isso permite que nossa aplicação seja escalável e fácil de gerenciar.

Em segundo lugar, JWTs são compactos e podem ser enviados através de uma URL, em um cabeçalho HTTP, ou em um cookie. Isso os torna muito convenientes para autenticação, especialmente em aplicações de página única (SPA).

Como funciona a Autenticação com JWT?

A autenticação com JWT geralmente envolve os seguintes passos:

  1. O usuário envia suas credenciais para o servidor.
  2. O servidor verifica as credenciais e, se forem válidas, gera um JWT que é enviado de volta ao usuário.
  3. O usuário armazena o JWT de alguma forma (por exemplo, em um cookie ou no armazenamento local).
  4. O usuário envia o JWT em cada solicitação subsequente ao servidor.
  5. O servidor verifica o JWT e, se for válido, processa a solicitação.
  6. Se o JWT não for válido (por exemplo, se expirou), o servidor rejeita a solicitação.

Implementando Autenticação com JWT em NodeJS

Para implementar a autenticação com JWT em NodeJS, precisamos do pacote jsonwebtoken. Podemos instalá-lo usando npm:


npm install jsonwebtoken

Uma vez que o pacote está instalado, podemos usá-lo para gerar e verificar JWTs. Aqui está um exemplo de como podemos fazer isso:


const jwt = require('jsonwebtoken');

// Generate a JWT
const token = jwt.sign({ id: user.id }, 'your-secret-key', { expiresIn: '1h' });

// Verify a JWT
try {
  const decoded = jwt.verify(token, 'your-secret-key');
  console.log(decoded.id); // will print the id of the user
} catch (err) {
  console.error('Invalid token');
}

A função jwt.sign() gera um JWT. Ela recebe três argumentos: o payload (um objeto que contém as informações que queremos armazenar no token), o segredo (uma string usada para assinar o token), e as opções (um objeto que pode conter várias propriedades, como expiresIn, que define quando o token expira).

A função jwt.verify() verifica um JWT. Ela recebe dois argumentos: o token e o segredo. Se o token for válido, ela retorna o payload. Se não for válido, ela lança um erro.

Em resumo, a autenticação com JWT em NodeJS é um processo simples e eficaz que pode melhorar significativamente a segurança de suas APIs. Com o JWT, você pode garantir que apenas usuários autorizados tenham acesso a determinados recursos, tornando sua aplicação mais segura e confiável.

Agora responda o exercício sobre o conteúdo:

O que é necessário para implementar a autenticação com JWT em NodeJS?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Autenticação e autorização em API's NodeJS: Autorização com roles e permissões

Próxima página do Ebook Gratuito:

100Autenticação e autorização em API's NodeJS: Autorização com roles e permissões

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto