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>
56 lines
2.2 KiB
PHP
56 lines
2.2 KiB
PHP
<?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
|
|
{
|
|
//
|
|
}
|