Posted on: July 27, 2022 03:14 PM
Posted by: Renato
Views: 3598
Laravel Passport – Criar API REST com autenticação
Neste tutorial, veremos como usar a autenticação de passaporte laravel em seu aplicativo Laravel. Também construiremos um CRUD de Produto simples (Criar, Ler, Atualizar e Excluir) usando a Autenticação Laravel Passport .
O Laravel já fornece autenticação de formulários de login tradicionais, mas e se você quiser usar APIs? As APIs usam tokens para autenticar usuários, pois não usam sessões. Quando um usuário faz login via API, um token é gerado e enviado ao usuário que é usado para fins de autenticação. O Laravel fornece o Passport para trabalhar com API Authentication sem nenhuma dificuldade.
Vamos ver como configurar e configurar o Laravel Passport para autenticação de API e APIs RESTful em um aplicativo Laravel.
Criando um novo projeto
Vamos começar criando um novo projeto Laravel. Execute o seguinte comando para criar um novo projeto.
composer create-project --prefer-dist laravel/laravel passport
Instalar pacote
Precisamos instalar o pacote Laravel Passport através do gerenciador de dependências do compositor. Execute o comando a seguir para exigir o pacote.
composer require laravel/passport
Adicionando Passaporte Laravel
O Laravel Passport requer algumas etapas para ser configurado corretamente.
Provedor de serviço
Estou usando o Laravel 5.6, que é a versão mais recente do laravel no momento, que registra automaticamente o pacote usando a descoberta automática de pacotes. Se você estiver usando laravel 5.4 ou inferior , você precisa adicionar Service Provider no arquivo config/app.php . Portanto, abra o arquivo e adicione o Service Provider na matriz de provedores .
|
|
Migração e instalação
Configure as credenciais do banco de dados no arquivo .env . O Laravel Passport vem com migração para tabelas de passaporte que precisam estar em nosso banco de dados. As Migrações do Passport são usadas para armazenar tokens e informações do cliente. Execute o comando migration para migrar esquemas para seu banco de dados.
php artisan migrate
Em seguida, é necessário instalar o passaporte usando o comando abaixo. Ele gerará as chaves de criptografia necessárias para gerar tokens de acesso secretos.
Configurar passaporte
Nesta etapa, precisamos fazer alterações em nosso aplicativo Laravel para concluir a configuração do passaporte.
app/User.php
Adicione o trait Laravel\Passport\HasApiTokens ao seu modelo de usuário . Ele fornecerá alguns métodos auxiliares.
|
|
AuthServiceProvider
Adicione Passport::routes
o método no método de inicialização do seu AuthServiceProvider . Ele irá gerar as rotas necessárias. É assim que o app/Providers/AuthServiceProvider.php ficará após as alterações.
|
|
config/auth.php
No arquivo config/auth.php , defina o driver para o passaporte.
|
|
Criar rota
Vamos criar rotas de API. Adicione rotas no arquivo routes/api.php .
|
|
Criar controlador para autenticação
Vamos configurar nossa lógica para Autenticação. Crie o Passport Controller executando o comando a seguir.
php artisan make:controller PassportController
Copie o conteúdo abaixo para app/Http/Controllers/PassportController.php
|
|
Deixe-me explicar o que está acontecendo no código acima
No método de cadastro , validamos os dados da solicitação e, em seguida, criamos o usuário. Em seguida, criamos o token usando o método createToken e passando o nome como argumento. Por fim, retornamos o token em uma resposta JSON.
No método de login , tentamos autenticar usando os detalhes da solicitação. Em seguida, retornamos uma resposta apropriada com base no sucesso ou fracasso da tentativa.
No método de detalhes , simplesmente retornamos o modelo eloquente do usuário.
Criar produto CRUD
Vamos criar um produto CRUD. Execute o seguinte comando para criar o Modelo de Produto, Migração e Controlador.
php artisan make:model Product -mc
Ele criará um novo arquivo de migração de banco de dados create_products_table.php no diretório database/migrations . Atualize o método up para o código abaixo.
|
|
Agora, adicione uma propriedade preenchível ao modelo Product . Abra o arquivo Product.php no diretório do aplicativo .
|
|
Agora, execute a migração do banco de dados.
php artisan migrate
Agora, vamos adicionar um método de relacionamento de produto no arquivo app/User.php .
|
|
Abra o arquivo ProductController.php no diretório app/Http/Controllers . Copie o conteúdo abaixo para o Controlador de Produto.
|
|
Teste
Agora, nossa lógica está completa, vamos começar a testar. Vamos testá-lo no servidor de desenvolvimento PHP, mas você pode usar o host virtual se quiser. Execute o comando a seguir para servir o aplicativo no servidor de desenvolvimento PHP.
php artisan serve
Agora, vamos testar nossos endpoints de API usando uma ferramenta de teste de API como Postman .
API de registro
API de login
API de detalhes
Ao testar a API de detalhes ou qualquer API que exija que um usuário seja autenticado, você precisa especificar dois cabeçalhos. Você deve especificar o token de acesso como um token de portador no cabeçalho de autorização . Basicamente, você deve concatenar o token de acesso que recebeu após o login e registro com o Portador seguido de um espaço.
|
|
API de índice de produtos
API da loja de produtos
API de exibição de produtos
API de atualização do produto
API de exclusão de produto
Entre em contato comigo e me contrate para projetos laravel.
Donate to Site
Renato
Developer
-
Renato Lucena - há 2 anos
* Achei interessante https://jwt.io/