japostulo/middleware-passport

Pacote que disponibiliza um middleware para integrar com o laravel passport para instrospecção

v1.1.2 2022-12-28 09:05 UTC

This package is auto-updated.

Last update: 2025-04-28 14:59:57 UTC


README

License

Requisitos

  • Laravel >= 8.0
  • API SSO com a implementação de dois endpoints
    • introspect - Endpoint que devolverá as informações do usuário,
    • authenticate - Endpoint que apenas retornará um booleano (Exceções são tratadas)

Instalação Rápida

composer require japostulo/middleware-passport

Configuração

Dentro do arquivo .env é necessário adicionar a URI do seu SSO

SSO_URL=http://localhost:8000

o plugin disponibiliza dois middlewares que podem ser utilizados para a introspecção do usuário ou apenas para autorizar acesso a endpoints autenticados. É necessário registrar no arquivo app/Http/Kernel.php, Ex:

protected $routeMiddleware = [
        'sso.client' => \Japostulo\MiddlewarePassport\Middlewares\ClientAuthenticate::class,
        'sso.password' => \Japostulo\MiddlewarePassport\Middlewares\PasswordAuthenticate::class,
    ];

Se você necessita de acesso aos dados do usuário (Auth::user() ou $request->user()) é necessário utilizar o middleware PasswordAuthenticate, a sua classe app\Models\User.php, será utilizada para retornar uma instância de new User via facade

Teste Rápido

routes/api.php

Route::middleware('sso.client')->get('/test-authenticated', function () {
        return response()->json("I'm authenticated");
});

Route::middleware('sso.password')->get('/test-introspect', function () {
    return response()->json(Auth::user());
});