APIs e Laravel Sanctum
Guia para Autenticação e Proteção de suas rotas

Search for a command to run...
Guia para Autenticação e Proteção de suas rotas

No comments yet. Be the first to comment.
Esta série de conteúdos é projetada para guiar desenvolvedores de todos os níveis, desde iniciantes até experientes, através dos fundamentos e funcionalidades avançadas do Laravel.
Automatizar tarefas é essencial em qualquer aplicação moderna. Envio de e-mails, processamento de dados, sincronizações, limpezas automáticas… tudo isso pode (e deve) rodar fora da requisição HTTP.
O que é o ngrok? Ngrok permite expor um serviço local (por exemplo, um servidor web rodando no seu PC) para a internet por meio de um túnel seguro, sem precisar configurar redirecionamento de portas no roteador ou DNS complicada. Requisitos prévios...

Se você quer aprender Linux, mas não quer instalar uma máquina virtual ou usar dual boot, uma ótima opção é utilizar o Play with Docker (PWD). Ele fornece um ambiente sandbox online, gratuito, onde podemos criar instâncias Linux para praticar comando...

Se você está buscando uma forma rápida e prática de tirar prints no Pop!_OS, o Flameshot é uma das melhores opções. Ele é leve, poderoso e altamente personalizável. Neste tutorial, você vai aprender como instalar e criar um atalho de teclado para usa...

Se você está tentando clonar um repositório do GitHub e se deparou com o seguinte erro: git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposito...

📦 Requisitos Ambiente com suporte a Node.js e npm (como o StackBlitz ou sua máquina local) Um editor de código (VS Code, StackBlitz, etc.) 1. Inicializar projeto Se estiver começando do zero (localmente): mkdir meu-projeto-tailwind cd meu-proj...

Ao desenvolver APIs com Laravel, um dos pontos mais importantes é garantir que apenas usuários autorizados consigam acessar determinados endpoints. Para isso, o Laravel oferece o Laravel Sanctum, uma solução simples, moderna e oficial para autenticação de APIs e aplicações SPA.
O Sanctum foi criado para resolver dois cenários muito comuns:
Autenticação de APIs via tokens
Autenticação de SPAs (Single Page Applications) usando cookies e sessão
Diferente de soluções mais complexas como OAuth2 (Laravel Passport), o Sanctum foca em simplicidade, segurança e produtividade, sendo ideal para a maioria dos projetos.
Neste tutorial, você vai entender como o Sanctum funciona, as diferenças entre os tipos de autenticação e como instalá-lo corretamente em um projeto Laravel.
O Laravel Sanctum funciona oferecendo uma camada de autenticação baseada em dois conceitos principais:
Cada usuário pode ter um ou vários tokens
Cada token é armazenado no banco de dados
O cliente envia o token no header Authorization: Bearer
Internamente:
O token é gerado uma única vez (plain text)
Apenas o hash do token é salvo no banco
O Laravel valida automaticamente o token a cada requisição
Usa sessões do Laravel
Proteção automática contra CSRF
Ideal para aplicações frontend (React, Vue, etc.)
Nesse modo:
O frontend solicita um cookie CSRF
O login cria uma sessão autenticada
As requisições seguintes usam cookies HttpOnly
O grande diferencial do Sanctum é permitir esses dois fluxos no mesmo projeto, sem conflito.
Essa é uma das partes mais importantes de entender antes de usar o Sanctum.
Indicado para:
Aplicativos mobile
Integrações de terceiros
APIs públicas ou privadas
Sistemas externos
Características:
Stateless (sem sessão)
Token enviado no header
Fácil de testar com Postman / Insomnia
Pode ter permissões (abilities)
Exemplo de header:
Authorization: Bearer 1|xYzAbC123...
Indicado para:
React, Vue, Angular
Frontend no mesmo domínio ou subdomínio
Aplicações web modernas
Características:
Usa sessão do Laravel
Cookies HttpOnly
Proteção CSRF
Mais seguro contra XSS
Fluxo resumido:
/sanctum/csrf-cookie
/login
Requisições autenticadas automaticamente
| Característica | Token API | SPA |
| Usa sessão | ❌ Não | ✅ Sim |
| Usa cookies | ❌ Não | ✅ Sim |
| Header Authorization | ✅ Sim | ❌ Não |
| CSRF | ❌ Não | ✅ Sim |
| Ideal para mobile | ✅ Sim | ❌ Não |
As versões mais recentes do Laravel já incluem o Laravel Sanctum. No entanto, se o arquivo composer.json da sua aplicação não incluir o pacote laravel/sanctum, você pode seguir as instruções de instalação abaixo.
⚠️ Observação: Neste projeto, o Sanctum já está presente no composer.json, então não é necessário rodar composer require laravel/sanctum.
composer.json:"laravel/sanctum": "^3.3"
Se estiver presente, o pacote já está instalado.
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
Isso cria:
config/sanctum.php
migrations necessárias
php artisan migrate
Será criada a tabela:
personal_access_tokensNo arquivo app/Models/User.php:
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
}
Sem esse trait, não é possível gerar tokens.
Em routes/api.php:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Agora essa rota só pode ser acessada por usuários autenticados via Sanctum.
O Laravel Sanctum é uma solução poderosa e simples para autenticação moderna em APIs e SPAs. Ele elimina complexidades desnecessárias e cobre a maioria dos casos reais de mercado.
Se você precisa:
Proteger APIs
Integrar com frontend moderno
Trabalhar com tokens de forma segura
👉 O Sanctum é a escolha certa.