Sobes.tech
Junior — Middle

Pode partilhar a sua experiência na utilização de JSON Web Tokens em projetos?

sobes.tech IA

Resposta da IA

Nos projetos PHP, utilizei JSON Web Tokens (JWT) para implementar autenticação e autorização de utilizadores. O JWT permite transmitir informações sobre o utilizador de forma encriptada entre o cliente e o servidor sem necessidade de manter uma sessão no servidor.

Principais passos para usar JWT:

  1. Após uma autenticação bem-sucedida, o utilizador recebe um JWT que contém a carga útil (por exemplo, ID do utilizador, funções).
  2. O token é assinado com uma chave secreta para evitar falsificações.
  3. O cliente guarda o token (por exemplo, no localStorage) e envia-o no cabeçalho Authorization em pedidos subsequentes.
  4. O servidor verifica a assinatura do token e extrai os dados para determinar os direitos de acesso.

Exemplo de criação de JWT usando a biblioteca firebase/php-jwt:

use Firebase\JWT\JWT;

$payload = [
    'iss' => 'your-domain.com',
    'iat' => time(),
    'exp' => time() + 3600, // duração de 1 hora
    'userId' => 123
];

$jwt = JWT::encode($payload, $secretKey, 'HS256');

// Para verificar:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);

O uso de JWT simplifica a escalabilidade das aplicações, pois não requer armazenamento de sessões no servidor, mas é importante configurar corretamente a duração do token e a sua atualização.