Instalar e configurar o Laravel Passport

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

  1. 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
  2. Instale o Passport: No diretório do seu projeto Laravel, use o Composer para instalar o Laravel Passport:

    composer require laravel/passport

Configuração

  1. Prepare o banco de dados: Execute as migrações do Passport para criar as tabelas necessárias no banco de dados:

    php artisan migrate
  2. 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

  1. Defina as autenticações no Model User: No seu modelo User, implemente a interface HasApiTokens:

    use Laravel\Passport\HasApiTokens; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens; // Restante do código }
  2. Defina as rotas para autenticação: No seu arquivo routes/api.php ou 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(); });
  3. 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 POST para /oauth/token com 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 Authorization em todas as solicitações para a API protegida.

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.

Você achou esse artigo útil?