socialiteproviders/franceconnect
FranceConnect OAuth/OpenID Connect provider for Laravel Socialite, letting applications offer secure login through the French government identity service (FranceConnect). Adds a franceconnect driver so users can authenticate with their existing certified identity provider and share verified data lik...
Architecture fit
socialiteproviders/franceconnect is a thin Socialite driver: it registers a provider with the Laravel Socialite manager and delegates the OAuth2/OIDC mechanics to league/oauth2-client. It is not an identity platform, not a session manager, and not a full OIDC relying-party implementation. That is the correct shape for a Laravel app that already uses Socialite for other providers and now needs French government identity (FranceConnect / FranceConnect+). If the target app does not already use Socialite, adopting this package means adopting Socialite's conventions (event listener, services.php config block, Socialite::driver() facade usage) as well — a small but real architectural commitment.
Integration feasibility
Code-side effort is low: composer require socialiteproviders/franceconnect, add the SocialiteWasCalled listener for SocialiteProviders\FranceConnect\FranceConnectExtendSocialite, add a franceconnect block to config/services.php, and wire a redirect/callback controller pair. Realistically hours, not weeks. The effort is almost entirely non-code: FranceConnect requires a fournisseur de service agreement with DINUM, registered redirect URIs per environment, and strict adherence to the FranceConnect button and consent-screen design system. Budget onboarding/legal time as the critical path, not engineering.
Technical risk
id_token is validated (signature against FranceConnect JWKS, iss, aud, exp, nonce). If validation is shallow, you must add verification yourself — this is the single largest security decision in the integration.acr_values (eidas1/2/3) the package targets before committing; a driver pinned to the legacy flow is a scheduled migration.id_token_hint. Drivers commonly omit this; assume you will hand-roll it.Key questions
id_token signature and nonce validation performed by the package or left to the integrator?composer.json?Stack fit
Assumes a Laravel application (9/10/11 class) on PHP 8.1+ with laravel/socialite already installed. Verify the package's own constraints before planning, and confirm it does not force a Socialite major-version bump that would affect existing providers.
Migration path
composer update socialiteproviders/franceconnect, run the full login round trip in a non-production environment, and confirm no lockfile conflict. Low risk, but do not treat it as zero risk until the diff is read.Compatibility
Pin the package version in composer.json and record the supported Laravel/PHP matrix in the repo. Verify redirect-URI matching is exact (scheme, host, path, trailing slash) per environment — mismatches are the most common first-day failure.
Sequencing
id_token handling; add verification if the package does not perform it..env on disk.Maintenance Low ongoing code maintenance; moderate ongoing compliance maintenance. FranceConnect's rules, button assets, and protocol generation change on the IdP's schedule, not yours. Track the upstream repo for releases and read every diff — the 4.1.1 notes demonstrate that release notes alone will not tell you what changed.
Support No commercial support path. Escalation is: internal owner → upstream issue tracker → fork. Identify the internal owner before launch and give them the FranceConnect documentation, not just the package.
Scaling Effectively free. The driver is stateless and adds no meaningful per-request cost; throughput is bounded by FranceConnect's availability and token-exchange latency, neither of which the package controls. No caching layer needed beyond normal session storage.
Failure modes
id_token validation fails silently for all users.exp/iat checks fail on unsynchronised hosts.Ramp-up A Laravel developer familiar with Socialite is productive in under a day on the code. The real ramp is domain knowledge: FranceConnect's assurance levels, consent requirements, and the FS registration process — plan a week of elapsed time for a first-time team, most of it waiting on approvals rather than writing code.
How can I help you explore Laravel packages today?