REST API Autenticação usando o Laravel Sanctum

REST API Autenticação usando o Laravel Sanctum

Autenticação é uma parte importante de qualquer projeto de Laravel. Muitos pacotes existem em Laravel para implementar a autenticação da API REST, como passaporte, santuário, jwt, etc. O Laravel Santum é um pacote Laravel simples e leve para implementar um sistema de autenticação de API REST para aplicativos móveis, aplicativos de página única (SPAs) e APIs baseadas em token. Ele pode gerar vários tokens de API para os usuários, e o aplicativo de uma página pode ser autenticado usando a sessão do usuário. Pode ser usado como uma alternativa à API de passaporte de Laravel. Laravel Santum é melhor do que o passaporte de Laravel em muitos casos. É mais simples que o Laravel Passport e não requer autenticação OAuth2, como a autenticação de passaporte. As maneiras de implementar a autenticação do Laravel Santum e verificar a API REST usando o Postman foram mostradas neste tutorial.

Pré-requisitos:

Você precisa concluir as seguintes tarefas antes de iniciar as etapas para implementar o sistema de autenticação Laravel Sanctum.

Crie um novo projeto de Laravel nomeado Projeto Sanctum. Aqui o compositor tem sido usado para criar o projeto Laravel. Se o compositor não está instalado antes disso, você deve instalá -lo antes de executar o seguinte comando.

$ compositor Criar Projeto Laravel/Laravel SanctumProject

Vá para a pasta do projeto.

$ CD SanctumProject

Todos os exemplos deste tutorial foram testados no Laravel versão 9+. Verifique a versão instalada do Laravel.

$ php artesan -versão

Execute os seguintes comandos para instalar e executar o carteiro.

$ sudo snap install postman

Banco de dados de configuração:

Você precisa criar um banco de dados no MySQL para implementar a tarefa de autenticação. Conclua as seguintes tarefas para criar um banco de dados e configurar o banco de dados para o projeto Laravel.

  1. Execute o seguinte comando SQL para criar um banco de dados nomeado l_sanctum do prompt do mysql.
mysql> criar banco de dados l_sanctum;
  1. Abra o .arquivo Env do projeto Laravel e inicialize os valores para as seguintes informações com base no banco de dados.
Db_connection = mysql
Db_host = localhost
Db_port = 3306
Db_database = l_sanctum
Db_username = 'nome de usuário'
Db_password = 'senha'

Instale e configure o Laravel Sanctum:

Você tem que realizar as seguintes tarefas para instalar e configurar o santuário do Laravel.

Execute o seguinte comando para baixar os arquivos necessários para instalar o pacote Laravel Sanctum.

$ compositor requer Laravel/santuário

Execute o seguinte comando para publicar a configuração do santuário.

$ php artesan fornecedor: publish -provider = "Laravel \ santum \ santumServiceProvider"

A saída a seguir aparecerá após a publicação do Santuário pacote com sucesso.


O arquivo de migração para o Usuários A tabela é criada por padrão ao criar o projeto Laravel. Execute o seguinte comando migrar para criar o Usuários Tabela usada para autenticação.

$ php artesan migrar

Middleware de configuração:

Para usar o santuário, você deve adicionar a seguinte linha no 'API'Seção do Núcleo.php arquivo. Abra o Núcleo.php arquivo do local, app/http/kernel.php, e adicione a linha.

\ Laravel \ santum \ http \ middleware \ garantemfrondendRequestSarest Aputado :: Classe,

O 'API'A seção deste arquivo será parecida com a seguinte imagem.

Crie a API:

Vá para a pasta do projeto e execute o seguinte comando para criar o controlador para a autenticação da API. Authcontroller.O arquivo php será criado dentro da pasta App/Http/Controllers após a execução do comando.

$ php artesan make: controller authcontroller

Abra o Authcontroller.php e substitua o conteúdo pelo seguinte script. O função registring () foi usado no script para validar os dados do usuário enviado e inserir os dados válidos na tabela de usuários. A função login () foi usada no script para autenticar o usuário, verificando as credenciais enviadas para o login.

namespace app \ http \ controladores;
use iluminado \ http \ request;
use iluminado \ support \ fachades \ hash;
use iluminado \ support \ fachades \ auth;
Use App \ Models \ User;
Classe Authcontroller estende o controlador

Registro de funções públicas (solicitação $ request)
$ post_data = $ request-> validate ([
'Nome' => 'Necessário | String',
'Email' => 'Necessário | String | Email | Único: Usuários',
'Senha' => 'Necessário | min: 8'
]);
$ user = user :: create ([
'Nome' => $ post_data ['nome'],
'Email' => $ post_data ['email'],
'Senha' => hash :: make ($ post_data ['senha']),
]);
$ token = $ user-> createToken ('authToken')-> planaTextToken;
RETORNO DE REPORTIÇÃO ()-> JSON ([
'access_token' => $ token,
'token_type' => 'portador',
]);

Função pública Login (request $ request)
se (!\ Auth :: Tent ($ request-> somente ('email', 'senha')))
RETORNO DE REPORTIÇÃO ()-> JSON ([
'Mensagem' => 'Informações de login são inválidas.'
], 401);

$ user = user :: where ('email', $ request ['email'])-> FULTORFAIL ();
$ token = $ user-> createToken ('authToken')-> planaTextToken;
RETORNO DE REPORTIÇÃO ()-> JSON ([
'access_token' => $ token,
'token_type' => 'portador',
]);

Adicionar rota para a API:

Abra o API.arquivo php de rotas pasta e adicione as seguintes linhas. A primeira linha foi usada para adicionar as informações do AuthController. A segunda linha foi usada para adicionar a rota da API para registrar o usuário. A terceira linha foi usada para adicionar a rota da API para autenticar o usuário registrado.

use app \ http \ controladores \ authcontroller;
Route :: Post ('/Register', [AuthController :: Class, 'Register']);
Route :: Post ('/Login', [AuthController :: Class, 'Login']);

Testando a autenticação da API usando o Postman:

Execute o aplicativo Postman. Defina o tipo de solicitação como PUBLICAR e escreva o seguinte URL.

http: // 127.0.0.1: 8000/registro

Depois de adicionar os parâmetros necessários para registrar uma nova conta de usuário, clique no botão Enviar. Se as novas informações do usuário forem inseridas com sucesso na tabela de usuários, uma informação Access_Token será exibida como a seguinte imagem.


Abra o Tabela de usuários do banco de dados, logando no servidor MySQL ou abrindo o Phpmyadmin do navegador para verificar qualquer novo registro foi inserido ou não no Tabela de usuários. A imagem a seguir mostra que um novo registro de usuário foi inserido no Usuários tabela depois de enviar os dados usando o carteiro aplicativo.


Agora, você pode verificar a autenticação da API usando o Postman. Escreva a seguinte URL no aplicativo Postman depois de selecionar a postagem como o tipo de solicitação. Digite o endereço de email e a senha válidos para autenticar o usuário existente e clique no Enviar botão. Se as informações do usuário fornecidas forem válidas, o Access_token As informações aparecerão como a seguinte imagem. A mensagem de erro será exibida para as informações do usuário inválido.

Conclusão:

A maneira simples de implementar a autenticação da API no projeto Laravel usando o Santuário o pacote foi mostrado neste tutorial. Os usuários da Laravel receberão o conceito de autenticação da API e poderão implementar e verificar a autenticação usando o Postman depois de ler este tutorial.