PHP Academy · Aula

Autenticação com Laravel Sanctum

Emita e valide tokens de API usando o Sanctum para clientes SPA e móveis.

Aula 3 de 413 etapas

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 migrate

Emitindo 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 minutes

Autenticaçã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?

Grátis para começar

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

  1. Rotas de API e controladores de recursos
  2. Recursos de API e respostas JSON
  3. Autenticação com Laravel Sanctum
  4. Limitação de taxa e versionamento de APIs
← Voltar para PHP Academy