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:
- 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).
- O token é assinado com uma chave secreta para evitar falsificações.
- O cliente guarda o token (por exemplo, no localStorage) e envia-o no cabeçalho Authorization em pedidos subsequentes.
- 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.