spomky-labs/oauth2-server-client-manager-supervisor-bundle
A Symfony bundle that provides a client manager supervisor for OAuth2 servers, helping you register, organize, and oversee OAuth2 clients within your Symfony application.
Verdict: reject for adoption; treat as a design reference only.
This package is a Symfony 2 bundle, not a Laravel package. Its entire value proposition is a handful of DI wiring plus one small class — a "supervisor" client manager that aggregates several underlying client managers and resolves an OAuth2 client by consulting them in order (chain-of-responsibility over client lookup). That is roughly 100 lines of domain logic wrapped in Symfony 2 bundle conventions (Bundle class, DependencyInjection/Extension, compiler passes, XML service definitions).
League\OAuth2\Server\Repositories\ClientRepositoryInterface — but the shipped code cannot be dropped in.client_id exists in two sources?league/oauth2-server) or Sanctum depending on grant types. There is no compatible seam for a Symfony 2 bundle. Passport is the correct home for OAuth2 client resolution; Sanctum for first-party token issuance.CompositeClientRepository (or a decorator around Passport's ClientRepository) that holds an ordered list of sub-repositories, each implementing ClientRepositoryInterface. Resolve find($id) by iterating in configured precedence order, returning the first non-null hit or null. Source the list from config/oauth2.php so ordering is environment-controllable without code changes.ClientRepositoryInterface contract version against the League major in use; the interface is stable (getClientEntity, validateClient, and — on newer majors — isClientConfidential). Keep the composite behind an interface so a Passport upgrade is a single-file change. For static/first-party clients, prefer a config-backed repository over seeding the DB, but keep both implementing the same contract.null, not exception), duplicate client_id (expect deterministic winner), and redirect-URI mismatch rejection.client_id. At realistic client counts this is not a bottleneck. The scaling concern is organizational, not technical: undocumented precedence rules become load-bearing and surprising.client_id across sources yields nondeterministic behavior if the composite is unordered.null returns producing opaque invalid_client errors that are hard to diagnose in production; emit a structured log line with which sources were consulted.How can I help you explore Laravel packages today?