📊 Slides: Cap 20 — Login na Arena: Auth e Tokens
Resumo visual da aula, em blocos — use como roteiro de revisão ou apresentação.
🟦 Slide 1: Objetivo da Aula
- Entender como apps mantêm você “logado” com segurança.
- Conhecer o Token JWT e o cabeçalho
Authorization.
🟦 Slide 2: O Cenário Prático
Hackers tentam burlar o ranking enviando pontuações falsas como se fossem outros jogadores. Crie a Trava de Segurança: login com senha → recebe um “Cartão de Acesso” (Token) → servidor só aceita com esse cartão.
🟦 Slide 3: Dicionário do Programador
| Termo | Significado |
|---|---|
| Autenticação | Provar quem você é (login e senha) |
| Token JWT | “Crachá Digital” — dados criptografados + assinatura |
| Bearer Token | “Eu sou o portador deste token, me deixe entrar” |
🏗️ Checklist: cabeçalho Authorization: Bearer <SEU_TOKEN> em toda chamada Retrofit
🟦 Slide 4: Do Login ao Crachá
graph TD
A["App: Envia Senha"] --> B["Servidor: Valida"]
B --> C["Entrega Crachá: JWT"]
C --> D["App: Salva o Crachá"]
D --> E["Próxima Chamada: Mostra Crachá"]
🟦 Slide 5: Exemplo — O Interceptor Real
fun prepararCabecalho(token: String): String {
return "Bearer $token"
}
class AuthInterceptor(private val token: String) : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val requisicaoOriginal = chain.request()
val requisicaoComToken = requisicaoOriginal.newBuilder()
.addHeader("Authorization", prepararCabecalho(token))
.build()
return chain.proceed(requisicaoComToken)
}
}
🟦 Slide 6: Prática e Próximos Passos
- 🛠️ Prática 1:
gerarHeadercom o token"pokedex_gold_2026". - 🛠️ Prática 2: por que tokens expiram?
- 🛠️ Prática 3:
LogInterceptor(imprime a URL chamada). - 💪 Exercício extra: combinando interceptors — Auth + Log.
- 🧠 Quiz: teste seus conhecimentos.
- ➡️ Próximo capítulo: Cap 21 — Testes de Combate (Qualidade).