📊 Capítulo 09: Autenticação com Laravel Sanctum
Especialização Backend com PHP & Laravel
🗺️ O Ciclo de Autenticação com Laravel Sanctum
sequenceDiagram
autonumber
actor C as Mobile App / SPA
participant A as AuthController (POST /api/login)
participant S as Sanctum Engine (HasApiTokens)
participant DB as Tabela personal_access_tokens
participant EP as Endpoint Protegido (auth:sanctum)
C->>A: Envia email e senha
A->>A: Hash::check(senha, user->password)
A->>S: $user->createToken('mobile-app', ['pedidos:criar'])
S->>DB: Salva SHA-256 do token e habilidades
S-->>A: Retorna Plain-Text Token ("1|xyz789...")
A-->>C: HTTP 200 {"token": "1|xyz789..."}
Note over C,EP: Requisições Protegidas Subsequentes
C->>EP: GET /api/v1/perfil Header "Authorization: Bearer 1|xyz789..."
EP->>S: Valida Hash do Token no Banco
EP-->>C: HTTP 200 Dados do Perfil
🎯 Slide 1: Personal Access Tokens Simples e Seguros
use Laravel\Sanctum\HasApiTokens;
class Usuario extends Authenticatable {
use HasApiTokens, HasFactory, Notifiable;
}
🎯 Slide 2: Habilidades de Tokens (Token Abilities)
// Gera token com permissões restritas
$token = $user->createToken('totem-leitura', ['produtos:ler'])->plainTextToken;
// No Controller:
if ($request->user()->tokenCan('produtos:ler')) {
// Permite operação
}
🎯 Slide 3: Autenticação de SPA com Cookies Sem Estado
- Para aplicações React/Vue hospedadas no mesmo domínio raiz, o Sanctum utiliza cookies de sessão criptografados seguros (Stateful Cookie Authentication), protegidos contra XSS e CSRF sem precisar gerenciar tokens manualmente no localStorage!
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim