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>
This commit is contained in:
2026-07-26 01:02:41 +02:00
commit c2b5291a74
174 changed files with 29318 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers;
use OpenApi\Attributes as OA;
#[OA\Info(
version: '1.0.0',
title: 'OAuth2 Identity Server API',
description: 'Servidor de identidad/OAuth2 (Laravel Passport) para que aplicaciones de terceros se autentiquen y gestionen usuarios. Pensada para ser consumida por aplicaciones cliente de terceros (Angular, Flutter, NestJS, etc.) que quieran construir su propio panel sin depender de la sesión de Laravel.'
)]
#[OA\Server(url: '/api', description: 'API base URL')]
#[OA\SecurityScheme(
securityScheme: 'oauth2',
type: 'oauth2',
description: 'Servidor de autorización OAuth2 (Laravel Passport). Soporta Authorization Code + PKCE, Client Credentials y Password Grant.',
flows: [
new OA\Flow(
flow: 'authorizationCode',
authorizationUrl: '/oauth/authorize',
tokenUrl: '/oauth/token',
refreshUrl: '/oauth/token',
scopes: [
'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',
]
),
new OA\Flow(
flow: 'clientCredentials',
tokenUrl: '/oauth/token',
scopes: [
'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',
]
),
new OA\Flow(
flow: 'password',
tokenUrl: '/oauth/token',
scopes: [
'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',
]
),
]
)]
abstract class Controller
{
//
}