jeffersongoncalves/laravel-sso-client
Laravel SSO Client offers a simple way to add single sign-on authentication to Laravel apps, handling login flows, user provisioning, and session management with configurable SSO providers.
Architecture fit: This is a thin Laravel SSO client that pairs with laravel-sso-server. Release 1.1.0 tightens the coupling between the two: federated logout requires server 1.1+, and the email_verified claim changes account-linking semantics. It remains a conventional Laravel package — routes, config, middleware — so it fits any standard Laravel app without architectural change. The main new architectural surface is the logout flow, which now leaves the app (browser redirect to the server) and depends on server-side session termination to be effective.
Integration feasibility: Straightforward for a fresh install. For existing installs it is a config-and-UI change, not a code rewrite:
'logout' => '/sso/logout' to endpoints and set post_logout_redirect_uri if the config was published before 1.1.0.Auth::logout()) to POST route('sso-client.logout').The email_verified change is opt-in-by-default in the sense that servers not emitting the claim retain 1.0 behavior; but any server that does emit it will see different linking outcomes immediately.
Technical risk:
token_hint on a redirect. If that is a query parameter, it is exposed to browser history, referrer headers, proxy/access logs, and any monitoring that captures URLs. Needs confirmation that it is a POST body, a short-lived opaque handle, or otherwise non-replayable.SSO_POST_LOGOUT_REDIRECT_URI must share an origin with the redirect URI; misconfiguration likely fails at runtime rather than at boot.email_verified enforcement hinges on strict boolean interpretation. A server sending "true", 1, or "1" could be treated inconsistently.Key questions:
token_hint transmitted as a POST body or a query string, and is it single-use / short-lived?SSO_POST_LOGOUT_REDIRECT_URI origin validation fails — boot-time exception or per-request error?email_verified check treat only literal true as verified, or does it coerce truthy values?Stack fit: Native Laravel. No new runtime dependencies beyond the existing package and a compatible server. Tested against PHP 8.4 / Laravel 13 across SQLite, MySQL and PostgreSQL, with interop tests against server 1.1.0 — that is a credible compatibility matrix for a package of this size. Teams on older Laravel/PHP should confirm the supported range before assuming parity with the tested matrix.
Migration path:
laravel-sso-server to 1.1+ first (federated logout is inert without it).logout endpoint and post_logout_redirect_uri.SSO_POST_LOGOUT_REDIRECT_URI to a same-origin landing page (defaults to home).route('sso-client.logout').link_existing_users_by_email and confirm the server emits email_verified.sso-client-development skill for AI-assisted work (developer-facing, no runtime impact).Compatibility: The email_verified change is backward-compatible only for servers that do not send the claim. Servers that send it will change linking behavior at deploy time — this is the one item that should be treated as a coordinated release, not a routine patch. The logout change is not a breaking API change but is a breaking UX/route change for any template or bookmark that used a GET logout.
Sequencing: Server first, then client, then config, then UI. Do not flip email_verified enforcement and federated logout in the same deploy — separate the account-linking behavior change from the logout change so failures are attributable. Run staging with a server that emits email_verified: false for a test account before production.
Maintenance: Low, but coupled. The client now has a hard functional dependency on server 1.1+ for federated logout, so upgrades should be planned as paired releases. The added config keys mean published configs drift; teams should diff against the package default on each upgrade. The Laravel Boost skill is a documentation artifact and adds negligible maintenance.
Support: Expect two clusters of tickets: (a) users who were signed in before the upgrade and only get local logout, and (b) users denied sign-in under the new email_verified rules. Both need pre-deploy comms and a documented answer. Also expect "logout didn't log me out of everything" reports from apps still on the older server.
Scaling: No meaningful change. Federated logout adds one browser redirect per logout — negligible load. The notable scaling consideration is correctness under multiple apps: federated logout is only as good as the server's back-channel notification, so the user-visible guarantee is "eventually logged out everywhere," not "atomically logged out everywhere."
Failure modes:
post_logout_redirect_uri origin → logout redirect fails after the local session is already destroyed; user lands on an error with no session to retry from.email_verified false or missing under legacy email-only mode → existing user locked out with no self-service path.token_hint is a bearer credential in a query string.Ramp-up: Low for a Laravel-fluent engineer — the package is config plus a route. The learning is not in the code but in the SSO model: understanding that logout is now a two-party flow, and that account linking is gated on a server-supplied claim. Budget half a day for the upgrade and UI change, plus a staging pass that specifically exercises unverified-email and pre-upgrade-session cases. The sso-client-development skill and guideline in resources/boost lower ramp-up further for teams using Laravel Boost.
How can I help you explore Laravel packages today?