Laravel Sanctum é uma das formas mais simples e eficazes de implementar autenticação via API em aplicações Laravel. Ideal para SPAs (Single Page Applications), aplicações mobile ou até mesmo sistemas com múltiplos front-ends, o Sanctum oferece uma maneira leve e segura de autenticação baseada em tokens.
Neste guia completo, você vai aprender passo a passo como instalar, configurar e utilizar o Laravel Sanctum para proteger suas rotas de API e gerenciar sessões de forma eficaz.
O que é o Laravel Sanctum?
O Laravel Sanctum é um pacote de autenticação desenvolvido pela equipe do Laravel que fornece uma maneira simples de autenticar APIs sem toda a complexidade do Laravel Passport. Ele permite gerar tokens de acesso para usuários autenticados, protegendo rotas e garantindo segurança entre o front-end e o back-end.
Principais características:
- Autenticação via token (Personal Access Tokens)
- Compatível com SPAs e aplicações mobile
- Revogação e gerenciamento de tokens
- Simplicidade e integração nativa com o Laravel
Quando Usar o Sanctum?
Sanctum é recomendado quando:
- Você precisa de autenticação simples via API;
- Está desenvolvendo um SPA com Vue, React, Angular, etc.;
- Precisa proteger rotas de API em projetos pequenos ou médios;
- Quer uma alternativa mais simples ao Passport (OAuth2).
Passo a Passo: Como Usar o Laravel Sanctum
1. Instalando o Sanctum
No terminal, rode:
composer require laravel/sanctum
Depois, publique os arquivos de configuração:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
E execute as migrações:
php artisan migrate
2. Configurando o Sanctum
No arquivo config/auth.php, altere o driver da API para sanctum:
'guards' => [
'api' => [
'driver' => 'sanctum',
'provider' => 'users',
],
],
Em seguida, adicione o middleware EnsureFrontendRequestsAreStateful (apenas para SPAs) no grupo api do app/Http/Kernel.php:
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
'api' => [
EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
3. Habilitando o uso de tokens
No seu model de usuário (geralmente App\Models\User), adicione o trait HasApiTokens:
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}
4. Criando Rotas de Autenticação
Você pode criar um controlador para autenticação:
php artisan make:controller AuthController
E dentro dele, implemente o login e a geração do token:
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
class AuthController extends Controller
{
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (!Auth::attempt($credentials)) {
return response()->json(['message' => 'Credenciais inválidas'], 401);
}
$user = Auth::user();
$token = $user->createToken('api-token')->plainTextToken;
return response()->json([
'user' => $user,
'token' => $token,
]);
}
public function logout(Request $request)
{
$request->user()->currentAccessToken()->delete();
return response()->json(['message' => 'Logout realizado com sucesso']);
}
}
Rotas no routes/api.php:
use App\Http\Controllers\AuthController;
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->group(function () {
Route::post('/logout', [AuthController::class, 'logout']);
Route::get('/user', function (Request $request) {
return $request->user();
});
});
5. Consumindo a API com Token
Ao fazer login, o token será retornado na resposta. Para acessar rotas protegidas, envie o token no header Authorization:
Authorization: Bearer SEU_TOKEN_AQUI
Boas Práticas com Sanctum
- Sempre use HTTPS em produção para proteger os tokens.
- Revogue tokens ao realizar logout.
- Crie nomes descritivos para os tokens (createToken(‘frontend-app’)).
- Monitore e limite o número de tokens por usuário, se necessário.
Conclusão
Laravel Sanctum é uma excelente opção para quem deseja proteger APIs de forma simples e segura. Ele equilibra bem robustez e facilidade de uso, sendo ideal para projetos modernos com SPA ou mobile.
Ao seguir este guia, você tem tudo o que precisa para começar a usar Sanctum em seu projeto Laravel e garantir autenticação eficiente para suas APIs.
Gostou do conteúdo? Compartilhe com outros devs e aproveite para explorar mais tutoriais sobre Laravel, autenticação e segurança em APIs!
🔥 Construa seus projetos com a melhor infraestrutura e ainda apoie o DevsBrasil!
Na Hostinger, você encontra hospedagem rápida, segura e com suporte top de linha — ideal para desenvolvedores e empreendedores digitais.
💡 Use o nosso link exclusivo do DevsBrasil e garanta:
✅ Descontos especiais nos planos de hospedagem, e-mail profissional, VPS e criador de sites com IA
✅ Ferramentas otimizadas para performance, com ótimo custo-benefício
✅ Apoio direto à nossa comunidade e ao nosso conteúdo gratuito 💚
👉 Acesse agora com nosso link exclusivo e aproveite os benefícios!