new funcionality
This commit is contained in:
39
app/Http/Controllers/OAuth/AuthorizationEventController.php
Normal file
39
app/Http/Controllers/OAuth/AuthorizationEventController.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\OAuth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\OAuthAuthorizationEvent;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class AuthorizationEventController extends Controller
|
||||
{
|
||||
/**
|
||||
* Registra un paso del funnel de autorización OAuth (intento, aprobación
|
||||
* o denegación) desde la pantalla de consentimiento (Authorize.vue).
|
||||
* Es solo para analíticas: no participa en el flujo real de OAuth, que
|
||||
* sigue resuelto enteramente por las rutas nativas de Passport.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->validate([
|
||||
'client_id' => ['required', 'string', Rule::exists('oauth_clients', 'id')],
|
||||
'outcome' => ['required', Rule::in(['attempted', 'approved', 'denied'])],
|
||||
'scopes' => ['array'],
|
||||
'scopes.*' => ['string'],
|
||||
]);
|
||||
|
||||
OAuthAuthorizationEvent::create([
|
||||
'user_id' => $request->user()->id,
|
||||
'client_id' => $data['client_id'],
|
||||
'outcome' => $data['outcome'],
|
||||
'scopes' => $data['scopes'] ?? [],
|
||||
'ip_address' => $request->ip(),
|
||||
'user_agent' => $request->userAgent(),
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
return response()->noContent();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user