JWT Descomplicado: Use Tokens para Simplificar Autenticação no PHP
- #PHP
- #JWT
O que é JWT
JWT (JSON Web Token) é um padrão de token compacto e seguro usado para autenticação e transmissão de informações entre sistemas. Ele é composto por três partes: Header, Payload e Signature, codificados em Base64. O resultado é um token que pode ser validado e usado para confirmar identidades de forma prática.
O JWT é perfeito para autenticação de usuários em APIs. Ele permite que o servidor confirme quem o cliente é sem precisar armazenar informações de sessão no backend. É ideal para sistemas stateless, onde escalabilidade e performance são prioridades. Além disso, ele pode transportar informações adicionais, como permissões de usuário, de forma segura.
Exemplo Prático de Uso do JWT no PHP
Exemplo de como utlizar o JWT com a biblioteca firebase/php-jwt
:
require 'vendor/autoload.php';
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
$chave= "minha_chave_secreta";
$payload = [
"iss" => "http://meusistema.com",
"iat" => time(),
"exp" => time() + 3600,
"user_id" => 123
];
$jwt = JWT::encode($payload, $key, 'HS256');
try {
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
echo "Usuário ID: " . $decoded->user_id;
} catch (Exception $e) {
echo "Token inválido: " . $e->getMessage();
}
Basicamente criamos um token, passando nossa chave secreta gerada pela biblioteca, carregamos o payload com as configuração de url, tempo de expiração e o id do usuário a ser identificado. Com este token, o usuário tem permissão de acessar certas rotas da API.
Por que utilizar JWT?
Com o JWT, você consegue autenticar usuários sem armazenar nada no backend, tornando o sistema mais escalável. É ideal para SPAs (Single Page Applications) e APIs RESTful. Além disso, ele funciona muito bem com rotas protegidas, garantindo que apenas usuários autenticados acessem os recursos.
Casos de uso do JWT
- Autenticar usuário
- Controle de acesso de rotas com permissões
- Sistemas SPAs, geralmente utilizando frameworks como Vue e React, autenticando sem precisar termos sessões e sem recarregamentos desnecessários de tela.
- Comunicação entre microserviços, reduz a necessidade de armazenar dado em um banco específico para validar
- Login social, para logar com conta google, facebook e entre outros
JWT é uma solução indispensável para quem quer construir APIs modernas e seguras, escaláveis e performáticas. Gostou? Me segue!
REDES SOCIAIS
Github: https://github.com/GiulianoCriscuoli
LinkedIn: https://www.linkedin.com/in/giuliano-criscuoli/
Instagram: @southlaser