sensiolabs/connect-bundle
Symfony bundle that integrates SensioLabs Connect, enabling OAuth-based login and access to Connect user data so applications can authenticate developers and display their SensioLabs profile or badge.
Read the archive notice first. This bundle is archived (last release 2019-09-25) and its backend service, SensioLabs Connect (connect.sensiolabs.com), is no longer operational. Before writing any code, confirm that assumption holds for your target environment — if it does, the honest "getting started" step is to stop and pick an alternative.
If you still need to evaluate it:
composer require sensiolabs/connect-bundle — expect this to fail or drag in Symfony 2.x/3.x components that conflict with a modern Laravel composer.json (PHP 8.x, illuminate/* 10/11).SensioLabs\Connect\ConnectClient — it is the only piece with portable value: getAuthorizationUrl(), getAccessToken($code), and api('me').SensioLabsConnectBundle and its DI extension — note that it registers a Symfony security firewall factory (connect), not a Laravel guard. This is the first hard stop.First real use case (Laravel): "Log in with SensioLabs Connect" on a Symfony community site. In Laravel you would not use this bundle; you would register a Laravel Socialite custom provider using league/oauth2-client against the same endpoints. The bundle's README is still useful as a spec for the OAuth exchange and the /api/me user shape.
1. Port the flow to Socialite (the recommended pattern).
Extend League\OAuth2\Client\Provider\AbstractProvider, point getBaseAuthorizationUrl() at https://connect.sensiolabs.com/oauth/v2/authorize and getBaseAccessTokenUrl() at the token endpoint, then register it with Socialite::extend('connect', ...). You get Laravel-native Socialite::driver('connect')->user() instead of a Symfony firewall.
2. Copy the bundle's client shape, not its classes.
ConnectClient is a thin wrapper around the authorization-code grant plus an API client. Reproduce that shape in a small service class rather than trying to autoload the Symfony bundle into Laravel.
3. Keep identity in your own model.
Map the Connect user payload (uuid, username, name, badges/certifications) into a local users + social_accounts table keyed on provider + provider_user_id. Never treat Connect's UUID as your primary key — you need to survive provider death, which is exactly what happened here.
4. If you run a hybrid Symfony + Laravel estate:
Put the Connect integration in the Symfony app where the bundle natively works, then hand Laravel a signed token or a session cookie. Do not embed Symfony's HttpKernel inside Laravel to make the bundle load; the container/event-dispatcher coupling is not worth it for one OAuth flow.
5. Data-sync pattern instead of login.
If you only want a user's badges/projects, prefer a queued job that pulls the public profile into a model on a schedule, tested with Http::fake(). This decouples you from their redirect flow (though not from the API being alive).
6. Testing.
Http::fake() the token endpoint and /api/me, and snapshot the payload fixture. The bundle has no test helpers you can reuse from Laravel.
config/connect.php, no php artisan vendor:publish, no facade, no guard. If a tutorial implies otherwise, it is for Symfony.connect firewall factory in security.firewalls. Laravel has no equivalent config surface; bridging requires reimplementing the guard yourself, at which point you have written more code than a Socialite provider.--ignore-platform-reqs tends to produce a broken autoloader, and both packages define overlapping PSR-4 roots only if you manually add the bundle namespace.sensiolabs/connect-bundle; the README historically referenced SensioLabsConnectBundle and the namespace is SensioLabs\Connect\.... When grepping an inherited codebase, search all three.config.yml, connect.client.id / connect.client.secret parameters, and the callback URL registered in the Connect app dashboard (now uneditable). A mismatch on the callback is the classic silent failure.league/oauth2-client and Socialite already implement better and with active maintenance.How can I help you explore Laravel packages today?