Pular para o conteúdo
Código e Café com PauloDev: Explorando o Universo da Programação

Código e Café com PauloDev: Explorando o Universo da Programação

Explore o universo da programação e tecnologia com PauloDev. Descubra insights, tutoriais e inovações que moldam o futuro digital. De linhas de código a ideias revolucionárias, embarque nesta jornada tech onde a paixão pela inovação se encontra com a expertise do desenvolvimento. Seja bem-vindo ao blog que transforma códigos em narrativas de vanguarda, guiado pela visão única de PauloDev no vasto panorama tecnológico.

  • Meu portifolio

Laravel Sanctum Desvendado: Simplificando a Autenticação API em Aplicações Laravel

3 de fevereiro de 2024
Por Paulo In API, Back-end, Laravel, PHP

Laravel Sanctum Desvendado: Simplificando a Autenticação API em Aplicações Laravel

A autenticação de APIs desempenha um papel crucial no desenvolvimento de aplicações modernas. O Laravel Sanctum surge como uma solução elegante para simplificar o processo de autenticação em aplicações Laravel que necessitam de APIs seguras. Neste artigo, vamos explorar o Laravel Sanctum, entender como ele funciona e como pode aprimorar a segurança e a usabilidade das suas aplicações Laravel.

O que é Laravel Sanctum? Uma Visão Geral:

1. Autenticação Simplificada:

O Laravel Sanctum é um pacote oficial do Laravel projetado para simplificar a implementação de autenticação API, fornecendo uma abordagem mais leve e flexível, especialmente para aplicações web SPA (Single Page Application) e mobile.

2. Tokens de Acesso:

O Sanctum utiliza tokens de acesso para autenticar usuários, permitindo que eles acessem recursos protegidos de sua aplicação.

Instalação e Configuração: Descomplicando o Setup:

1. Instalação via Composer:

A instalação do Laravel Sanctum é rápida e simples, realizada via Composer.

composer require laravel/sanctum

2. Configuração:

Após a instalação, publique as configurações e execute as migrações para criar as tabelas necessárias no banco de dados.

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

3. Configuração Adicional (Opcional):

Personalize as configurações do Sanctum no arquivo config/sanctum.php conforme as necessidades específicas da sua aplicação.

Emissão de Tokens e Rotas Protegidas:

1. Emissão de Tokens:

O Sanctum oferece uma variedade de métodos para emitir tokens de acesso, incluindo tokens de sessão e tokens de API.

use Laravel\Sanctum\HasApiTokens;
class Usuario extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

2. Protegendo Rotas:

Utilize o middleware auth:sanctum para proteger rotas que requerem autenticação.

Route::middleware('auth:sanctum')->get('/recurso-protegido', function () {
    // Lógica da rota protegida
});

Tokens de Sessão e Autenticação SPA:

1. Tokens de Sessão:

O Sanctum suporta tokens de sessão, permitindo que você use a mesma lógica de autenticação para aplicativos web tradicionais e SPAs.

2. Autenticação SPA:

Para autenticação SPA, o Sanctum oferece uma API leve e fácil de usar que simplifica a autenticação via JavaScript.

axios.post('/login', {
    email: 'exemplo@email.com',
    password: 'senha',
    device_name: 'nome-do-dispositivo',
}).then(response => {
    console.log(response.data);
});

Revogação de Tokens: Mantendo a Segurança:

1. Revogação Manual:

O Sanctum permite revogar tokens manualmente através de uma rota dedicada.

use Laravel\Sanctum\Sanctum;
Sanctum::revokeTokens($usuario);

2. Limpeza Automática (Opcional):

Configure a limpeza automática de tokens expirados no arquivo config/sanctum.php para manter o banco de dados organizado.

Verificação de Tokens e Middleware:

1. Middleware de Verificação:

Utilize o middleware EnsureFrontendRequestsAreStateful para verificar automaticamente a presença do cookie de sessão ao receber solicitações AJAX no Laravel.

1. Middleware de Verificação:

// Exemplo de uso do middleware no Kernel.php
'api' => [
    EnsureFrontendRequestsAreStateful::class,
    'throttle:60,1',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

2. Verificação de Token no Frontend:

Ao fazer solicitações no frontend, inclua o token de acesso no cabeçalho para autenticação.

axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;

Proteção Contra CSRF: Segurança em Primeiro Lugar:

1. Configuração Automática:

O Sanctum realiza a configuração automática da proteção CSRF para garantir a segurança contra ataques CSRF.

2. Verificação CSRF no Frontend:

Ao realizar solicitações no frontend, o Sanctum inclui automaticamente o token CSRF no cabeçalho.

axios.defaults.headers.common['X-CSRF-TOKEN'] = document.head.querySelector('meta[name="csrf-token"]').content;

Conclusão:

O Laravel Sanctum emerge como uma ferramenta valiosa para simplificar e aprimorar a autenticação API em aplicações Laravel, especialmente aquelas que envolvem SPAs e aplicativos mobile. Ao integrar o Sanctum em seu projeto, você pode garantir uma autenticação segura e eficiente, mantendo a flexibilidade necessária para diferentes tipos de aplicativos. Experimente incorporar o Laravel Sanctum em suas próximas aplicações e aproveite seus benefícios para um processo de autenticação simplificado e seguro.

Promoção
Written by:

Paulo

Ver todos os posts

Categorias

  • Android
  • Android Studio
  • Angular
  • API
  • AWS
  • Back-end
  • Bash
  • Boas Práticas
  • CSharp
  • CSS
  • Django
  • Docker
  • Electron
  • Front-end
  • Git
  • Github
  • Html
  • Http
  • Java
  • JavaScript
  • Laravel
  • Linha de comando
  • Linux
  • Machine Learning
  • Metodologias
  • Mysql
  • Node
  • NoSql
  • PHP
  • Power Shell
  • Python
  • Segurança
  • Sem categoria
  • SQL
  • Tecnologia
  • Testes
  • VueJs
  • Windows

Últimos posts

  • Python para o desenvolvimento Web: Como o Django pode alavancar na escrita do seu código
  • Conheça as Transactions e como elas podem te ajudar a testar o seu sistema
  • Melhorando a performance dos seus projetos PHP, conheça o OPCache e o JIT
  • Redis com Laravel: Uma ferramenta poderosa para o escalonamento horizontal da sua aplicação
  • Conhecendo e configurando um servidor de Load Balance com YARP e NGINX

© Todos os direitos reservados PauloDev 2023