Autenticação de APIs com PASSPORT – Laravel

O Laravel facilita a autenticação por meios de formulários de login tradicionais, mas APIs geralmente usam tokens para autenticar usuários e não mantêm o estado da sessão entre as solicitações, o que chamamos de Stateless. No Laravel a autenticação da API é facilitada usando o Laravel Passport, que fornece uma implementação do OAuth2.

O primeiro passo é instalar o passport, através do composer.

Com a instalação realizada, precisamos utilizar o registro padrão do laravel em relação as tabelas do banco de dados, ai basta executar o migration;

Em seguida, devemos executar o passport install. Este comando criará as chaves de criptografia necessárias para gerar tokens de acesso seguro. Além disso, o comando criará clientes de “acesso pessoal” e “concessão de senha”, que são dois métodos de gerar tokens de acesso que estão disponíveis no passport.

Depois é necessário modificar o Model de Usuário (User) da seguinte forma:

Em seguida, devemos chamar o método Passport routes dentro do método de inicialização do AuthServiceProvider. Esse método registrara as rotas necessárias para emitir token de acesso e revogar tokens de acesso, clientes e tokens de acesso pessoal;

Finalmente, no seu arquivo de configuração config/auth.php, você deve definir a opção de driver do protetor de autenticação da API para o passaporte. Isso instruirá seu aplicativo a usar o TokenGuard do Passport ao autenticar as solicitações recebidas da API:

Particularmente gosto de usar o passport password (concessão de senha), ele baseia-se no acesso com usuário tradicional gerado pelo próprio laravel composto por um client que é grado com o seguinte comando:

Para testar, basta utilizar o Postman ou qualquer outra extensão ou programa que faça a comunicação com API REST utilizando o seguinte endpoint POST

http://localhost:8000/oauth/token

HEADER

Content-Type application/json

BODY json

 

Veja no meu canal do youtube: