Pular para conteúdo

Aula 09 - Segurança e Autenticação com JWT 🔐

Portas trancadas e Crachás Digitais


Agenda 📅

  1. Autenticação vs Autorização
  2. O Fim das Sessões (Stateful)
  3. O que é JWT?
  4. Estrutura: Header, Payload, Signature
  5. Fluxo de Login completo
  6. Melhores Práticas de Segurança

1. Quem é Você? (Autenticação) 🚦

  • Validar a identidade do usuário.
  • Login e Senha.
  • Autorização: O que você PODE fazer? (Níveis de acesso).

2. Por que JWT? 🤔

  • Abordagem Stateless (Sem estado).
  • O servidor não guarda sessão na memória (escalável!).
  • Perfeito para Microserviços e Mobile.

3. Estrutura do Token 🎫

[Header].[Payload].[Signature]
  • Header: Algoritmo (ex: HS256).
  • Payload: Os dados (id, role, nome).
  • Signature: O lacre de segurança.

4. O Coração do JWT: A Assinatura 🖋️

  • Usa uma SECRET_KEY no servidor.
  • Garante que o token não foi "hackeado" ou alterado.

5. Fluxo de Login 🌊

  1. Envia credenciais -> 2. Servidor valida -> 3. Gera JWT -> 4. Frontend guarda o Token -> 5. Envia no Header em cada requisição.

6. Segurança em Mobile 📱

  • Nunca guarde em arquivos de texto!
  • Use EncryptedSharedPreferences (Android) ou Keychain (iOS).

7. Melhores Práticas 🏆

  • Use chaves secretas longas e seguras.
  • Defina tempo de expiração (expiresIn).
  • Protocolo HTTPS é obrigatório!

Desafio de Segurança ⚡

O Payload do JWT é criptografado ou apenas codificado? Posso guardar a senha do usuário lá?


Resumo ✅

  • JWT permite autenticação rápida e escalável.
  • Header + Payload + Signature.
  • Stateless = Servidor mais leve.

Próxima Aula: Controle de Acesso 🛡️

Quem manda aqui? (RBAC)

  • Middlewares de autorização.
  • Protegendo rotas por nível de usuário.

Dúvidas? 🔐