Como Usar o Laravel Sanctum para Autenticação de APIs: Guia Completo

Como Usar o Laravel Sanctum para Autenticação de APIs: Guia Completo

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!

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *