Autenticação JWT no FastAPI
A autenticação pergunta "Quem é você?" A autorização pergunta "O que você pode fazer?"
Se você construir uma plataforma de IA sem segurança, qualquer pessoa poderá acessar dados privados. Eles podem alterar perfis de usuários ou visualizar o progresso dos alunos. Você deve proteger seus recursos.
O JWT (JSON Web Token) resolve isso. Em vez de enviar uma senha a cada requisição, o usuário envia um token seguro.
O fluxo de trabalho:
- Registrar usuário
- Gerar hash da senha
- Fazer login e verificar credenciais
- Gerar token JWT
- Acessar rotas protegidas
Você deve usar estas ferramentas:
- passlib com bcrypt para hashing de senhas
- python-jose para geração de tokens
Nunca armazene senhas em texto puro. Se um hacker roubar seu banco de dados, ele terá tudo. Em vez disso, armazene um hash.
Um hash transforma "password123" em uma longa string de caracteres aleatórios. Você não pode transformar o hash de volta na senha. Você apenas verifica se a entrada corresponde ao hash.
Como construir:
Registro O usuário envia um nome de usuário e uma senha. Você gera o hash da senha e o armazena em seu banco de dados.
Login O usuário envia as credenciais. Você encontra o hash armazenado. Você usa a biblioteca para verificar a senha. Se ela coincidir, você cria um token.
Geração de JWT Um token contém dados do usuário e um tempo de expiração. Você assina o token com uma chave secreta. Se um usuário tentar alterar os dados, a assinatura falhará.
A resposta de login é assim: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }
Agora o usuário possui uma chave para o seu sistema.
Na próxima parte, aprenderemos como usar esses tokens para proteger rotas específicas e gerenciar papéis de usuário.
Resumo dos passos:
- Registrar usuário
- Gerar hash e armazenar senha
- Verificar senha durante o login
- Gerar JWT assinado
Source: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk
Optional learning community: https://t.me/GyaanSetuAi