Files
oauth/app/Providers/AppServiceProvider.php
Josep Piguillem c2b5291a74 Initial commit: OAuth IAM Laravel application
Laravel-based OAuth/IAM service with Passport, Vue 3 frontend, and
Docker Compose setup for local and production deployment.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 01:02:41 +02:00

51 lines
1.6 KiB
PHP

<?php
namespace App\Providers;
use App\Listeners\RecordOAuthLoginEvent;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;
use Laravel\Passport\Events\AccessTokenCreated;
use Laravel\Passport\Passport;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Passport::enablePasswordGrant();
Passport::$deviceCodeGrantEnabled = false;
Passport::tokensExpireIn(now()->addDays(15));
Passport::refreshTokensExpireIn(now()->addDays(30));
Passport::personalAccessTokensExpireIn(now()->addMonths(6));
Passport::tokensCan([
'users:read' => 'Leer usuarios',
'users:write' => 'Crear, editar y borrar usuarios',
'account:read' => 'Leer tus clientes OAuth, tokens y apps autorizadas',
'account:write' => 'Gestionar tus clientes OAuth, tokens y apps autorizadas',
]);
// Sin scope por defecto: los datos de usuarios son sensibles, el cliente
// tiene que pedir explícitamente el acceso que necesita.
// La pantalla de consentimiento la renderiza la SPA Vue (ver Authorize.vue).
// Passport inyecta client/user/scopes/authToken; se los pasamos al shell Blade
// como JSON para que el JS los lea (ver resources/views/app.blade.php).
Passport::authorizationView('app');
Event::listen(AccessTokenCreated::class, RecordOAuthLoginEvent::class);
}
}