Instalar e configurar o Laravel Passport é um processo relativamente simples e poderoso para autenticação baseada em tokens para APIs. Aqui estão os passos gerais para instalar e configurar o Laravel Passport:
Instalação
-
Instale o Laravel: Se ainda não tiver um projeto Laravel, você pode criar um usando o Composer:
composer create-project --prefer-dist laravel/laravel nome_do_projeto -
Instale o Passport: No diretório do seu projeto Laravel, use o Composer para instalar o Laravel Passport:
composer require laravel/passport
Configuração
-
Prepare o banco de dados: Execute as migrações do Passport para criar as tabelas necessárias no banco de dados:
php artisan migrate -
Configure o Passport: Registre o serviço do Passport no seu aplicativo Laravel, executando o comando
passport:install. Este comando irá criar chaves de acesso e tokens de acesso pessoal e de clientes.php artisan passport:install
Configuração Adicional
-
Defina as autenticações no Model User: No seu modelo
User, implemente a interfaceHasApiTokens:use Laravel\Passport\HasApiTokens; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens; // Restante do código } -
Defina as rotas para autenticação: No seu arquivo
routes/api.phpou em qualquer local onde deseja definir suas rotas de autenticação, utilize os métodos Passport para rotas de autenticação e tokens:Route::post('/login', 'AuthController@login'); Route::post('/register', 'AuthController@register'); // Rota protegida por autenticação (exemplo) Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); -
Use as Middlewares de Autenticação: Nos controladores ou rotas que precisam de autenticação, utilize os middlewares fornecidos pelo Passport, como
auth:api.
No arquivo config/auth.php, verifique se a configuração para o guard api está apontando para passport no driver:
'guards' => [
// ...
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],Para permitir que um cliente acesse sua API usando o Laravel Passport, você precisa configurar e conceder tokens de acesso aos clientes. Isso envolve criar um cliente OAuth no Laravel Passport e usar as rotas fornecidas pelo Passport para gerar tokens de acesso para o cliente.
Passos para permitir o acesso do cliente à sua API:
1. Crie um Cliente OAuth no Laravel Passport:
php artisan passport:client --client
Esse comando interativo solicitará que você insira um nome e talvez uma URL de redirecionamento (dependendo do tipo de cliente que está sendo criado).
2. Armazene as Credenciais do Cliente:
Após criar o cliente, você receberá as credenciais, como client_id e client_secret. Armazene essas credenciais de forma segura, pois serão usadas pelo cliente para autenticar solicitações à sua API.
3. Autenticação do Cliente:
O cliente deve autenticar-se obtendo um token de acesso por meio das rotas fornecidas pelo Passport.
-
Fluxo de Autenticação para o Cliente:
- O cliente deve fazer uma solicitação
POSTpara/oauth/tokencom as credenciais do cliente e as credenciais do usuário (se estiver autenticando em nome de um usuário específico) no corpo da solicitação. - O Laravel Passport irá autenticar e retornar um token de acesso, que deve ser incluído no cabeçalho
Authorizationem todas as solicitações para a API protegida.
- O cliente deve fazer uma solicitação
Exemplo de Solicitação para Obter um Token de Acesso:
POST /oauth/token HTTP/1.1
Host: seuhost.com
Content-Type: application/x-www-form-urlencoded
grant_type=password&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&username=EMAIL&password=SENHA&scope=*
Substitua seuhost.com, CLIENT_ID, CLIENT_SECRET, EMAIL e SENHA pelos valores reais.
4. Acesso a Rotas Protegidas pela API:
Para acessar rotas protegidas pela autenticação do Passport, o cliente deve incluir o token de acesso no cabeçalho Authorization em suas solicitações:
GET /api/rota-protegida HTTP/1.1
Host: seuhost.com
Authorization: Bearer TOKEN_DE_ACESSO
Substitua TOKEN_DE_ACESSO pelo token de acesso obtido na etapa de autenticação do cliente.
Esses passos devem permitir que um cliente obtenha um token de acesso do Laravel Passport e use esse token para acessar sua API protegida. Certifique-se de configurar a segurança adequadamente e gerenciar os tokens de acesso e as credenciais do cliente de forma segura.