Autenticação com Laravel Sanctum
Emita e valide tokens de API usando o Sanctum para clientes SPA e móveis.
Autenticação com Laravel Sanctum é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é o Sanctum?
Laravel Sanctum fornece um sistema simples de autenticação baseada em tokens para SPAs e clientes móveis. Ele oferece suporte tanto a tokens de API quanto à autenticação baseada em sessão para SPAs próprias.
Instalando o Sanctum
Instale e configure o Sanctum.
$ composer require laravel/sanctum
$ php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$ php artisan migrateEmitindo tokens
Gere um token de acesso pessoal para um usuário depois de verificar as credenciais.
<?php
Route::post("/login", function (Request $request) {
$request->validate(["email" => "required", "password" => "required"]);
$user = User::where("email", $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
throw ValidationException::withMessages([
"email" => ["The provided credentials are incorrect."],
]);
}
$token = $user->createToken("mobile-app")->plainTextToken;
return response()->json(["token" => $token]);
});Usando HasApiTokens
Adicione o recurso HasApiTokens ao seu modelo User para habilitar o gerenciamento de tokens.
<?php
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}Protegendo rotas
Use o middleware auth:sanctum para proteger rotas de API.
<?php
// routes/api.php
Route::middleware("auth:sanctum")->group(function () {
Route::get("/user", fn(Request $r) => $r->user());
Route::apiResource("posts", PostController::class);
});Enviando o token
Os clientes enviam o token no cabeçalho Authorization como um token do tipo Bearer.
# HTTP header:
Authorization: Bearer 1|AbCdEf1234567890...Escopos de tokens (permissões)
Atribua permissões aos tokens para restringir quais ações eles podem executar.
<?php
// Create token with abilities:
$token = $user->createToken("mobile", ["read:posts", "write:comments"])->plainTextToken;
// Check ability:
if ($user->tokenCan("write:comments")) {
// allowed
}Revogando tokens
Exclua um token específico ou todos os tokens (encerre a sessão em todos os dispositivos).
<?php
// Revoke current token (logout):
$request->user()->currentAccessToken()->delete();
// Revoke all tokens (logout everywhere):
$request->user()->tokens()->delete();Expiração de tokens
Defina a expiração dos tokens em config/sanctum.php. Os tokens são verificados em relação a last_used_at e à janela de expiração.
// config/sanctum.php
"expiration" => 60 * 24 * 7, // 7 days in minutesAutenticação de SPA
Para SPAs no mesmo domínio, o Sanctum pode usar autenticação baseada em sessão em vez de tokens. Chame /sanctum/csrf-cookie primeiro e depois use o login normal.
Sanctum versus Passport
Sanctum: tokens de API simples e autenticação de SPA. Passport: servidor OAuth2 completo com códigos de autorização, credenciais de cliente e tokens de atualização. Comece com o Sanctum; só mude para o Passport se precisar de OAuth2.
Resumo
O Sanctum emite tokens Bearer para autenticação de API. Adicione HasApiTokens ao modelo User. Proteja as rotas com auth:sanctum. Revogue os tokens ao sair. Use permissões para definir o escopo dos acessos.
Verificação rápida
Como um cliente inclui um token do Sanctum nas solicitações de API?
Aprenda PHP com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 49
- Aulas
- 195
Perguntas Frequentes
A aula “Autenticação com Laravel Sanctum” é grátis?
Sim — o texto completo de “Autenticação com Laravel Sanctum” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Autenticação com Laravel Sanctum”?
Emita e valide tokens de API usando o Sanctum para clientes SPA e móveis. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Autenticação com Laravel Sanctum”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Rotas de API e controladores de recursos
- Recursos de API e respostas JSON
- Autenticação com Laravel Sanctum
- Limitação de taxa e versionamento de APIs