socialiteproviders/laravelpassport
Laravel Passport OAuth provider for Laravel Socialite. Adds a passport driver so your app can authenticate users against any Laravel Passport server using standard OAuth2 flows, with minimal setup and familiar Socialite syntax.
Architecture fit. Unchanged by 4.3.0. This package remains a thin adapter: a single LaravelPassportProvider extending Socialite's AbstractProvider, registered through Socialite::extend or the SocialiteProviders manager. It introduces no new auth architecture — it plugs a Laravel Passport OAuth2 server into Socialite's authorization-code flow. That is a clean fit for a Laravel shop already using Socialite for social login and either running Passport internally or consuming a Passport-based identity server, because it reuses the existing Socialite facade, user provider, and guard wiring. It is not a general OAuth2/OIDC client: no discovery document, no JWKS, no id_token validation. If the identity server is not Passport-shaped (specifically, does not expose a user endpoint the provider can parse), this is the wrong tool.
Integration feasibility. Low effort on our side: one Composer dependency, a config/services.php block, two routes, and a controller. The real work sits server-side — defining the /user contract (id, name, email, avatar), scoping tokens, and registering redirect URIs. Realistic estimate is hours to a couple of days, dominated by server coordination rather than package integration. The binding constraint remains compatibility, not complexity — and the 4.3.0 release is the first thing to check against our pinned laravel/socialite constraint, since a minor bump in this package is most likely a widened or narrowed Socialite version range in composer.json rather than a behavioural change.
Technical risk.
Revised on 4.3.0.
compare/4.2.0...4.3.0 and the composer.json constraint delta.Key questions.
compare/4.2.0...4.3.0 — dependency constraint changes only, or code changes to getAuthUrl/getUserByToken/mapUserToObject?laravel/socialite, Laravel, or PHP version, and does that floor sit above or below our pins?AbstractProvider contract on that version?Stack fit. Unchanged. Laravel + Socialite + Passport are all first-party. If Passport already issues API tokens for us, reusing it as the SSO authority avoids standing up a second identity system — still the strongest argument for this package over a generic OIDC client.
Migration path. Unchanged. If replacing a bespoke OAuth client or a different SSO, run both in parallel behind a feature flag with dual login entry points. Keep the legacy path live until a full authorization-code cycle has succeeded in production for real users, including edge cases like expired codes and revoked clients.
Compatibility. Pin exact versions of socialiteproviders/laravelpassport, laravel/socialite, and the Passport server. New step given 4.3.0: diff the two tags and record the dependency-constraint delta in the ticket before pinning, so we know whether 4.3.0 is a drop-in or requires a Socialite/PHP move on our side. Add a CI smoke test that executes the authorization-code exchange against a staging Passport instance — unit tests will not catch signature drift. Explicitly validate PHP 8.2/8.3 and Laravel 10/11 before committing; if the package fails, budget for a fork rather than blocking on upstream.
Sequencing.
composer.json; classify as constraint-only vs. behavioural./user response contract and required scopes with the Passport server owners.Maintenance. Code surface is tiny, so ongoing cost is almost entirely version-drift triage at each Laravel/Socialite major bump. 4.3.0 is a modest positive signal — someone is still holding the keys — but it does not change the operating model: budget a recurring review per framework upgrade and keep a fork ready to absorb a one-line signature fix. Update the internal package-health record to note the current tag so the "stale since 2022" flag stops firing on future reviews.
Support. Community-only, no SLA. The 4.3.0 tag is evidence the repo is not archived, but one release after a long dormancy is not an SLA and not a responsiveness commitment. Assign an internal owner and document the fork process; do not assume upstream will triage a P1.
Scaling. Effectively free and unchanged. The handshake is per-login and stateless from our app's side; the load lands on the Passport server's token and user endpoints, which should be rate-limited and monitored like any other auth dependency.
Failure modes. redirect_uri_mismatch, invalid_client, consumed or expired authorization codes, 5xx from the user endpoint, unmapped user fields producing null users, stale config cache after credential rotation, clock skew on token validation, silent breakage on a Socialite upgrade, and total lockout if the Passport server is unavailable. Add for this release: an unverified minor upgrade is itself a failure mode — if 4.3.0 changed the expected /user payload or the Socialite constraint, it fails at first login rather than at deploy, so gate the upgrade behind the staging smoke test in a canary before widening. The material risk is still total lockout on Passport server unavailability — mandate a break-glass local admin login path that does not traverse the provider.
Ramp-up. A mid-level Laravel developer can integrate in under a day; the learning curve is the Passport server's client/scope model, not this package. Pair them with the team owning that server and put the flow, scopes, and failure codes in the runbook. Add the 4.2.0→4.3.0 diff summary to that runbook so the next upgrade does not restart the investigation from zero.
How can I help you explore Laravel packages today?