Files
oauth/app/Support/TokenRevocation.php
2026-07-27 17:20:02 +02:00

29 lines
744 B
PHP

<?php
namespace App\Support;
use App\Events\TokenRevoked;
use Laravel\Passport\Token;
/**
* Único punto de revocación de un token OAuth — usado por el self-service
* (AuthorizedAppController, ClientController), por el admin (UserSessions) y
* por la revocación en cascada al revocar un client. Centralizarlo acá
* garantiza que el evento TokenRevoked (que dispara los webhooks salientes)
* se dispare siempre, sin importar desde dónde se originó la revocación.
*/
class TokenRevocation
{
public static function revoke(Token $token): void
{
if ($token->revoked) {
return;
}
$token->revoke();
$token->refreshToken?->revoke();
TokenRevoked::dispatch($token);
}
}