dutchcodingcompany/filament-socialite
Filament Socialite adds OAuth social login buttons to Filament panels, letting users sign in with providers like Google, GitHub, and Facebook via Laravel Socialite. It includes configurable providers, redirect handling, and simple integration with Filament authentication.
Architecture fit. Unchanged. The package remains a thin Filament panel plugin that delegates the OAuth handshake to Laravel Socialite: it plugs into Filament's plugin contract, registers redirect/callback routes on the panel, and injects provider buttons into the login view, while leaving credential exchange, scopes, and provider coverage to Socialite (and the wide SocialiteProviders ecosystem). It does not introduce a parallel auth system — it terminates in Laravel's normal guard/session flow — so our authorization model (canAccessPanel, roles, tenancy) stays intact. Fit is good if our Filament major version is supported.
Integration feasibility. 3.3.0 is a minor, additive change (single PR: redirect back to login when the provider request fails). No config keys, routes, migrations, or published views change; no action required on our side and no re-evaluation of the integration estimate. Surface area remains small: composer require, register the plugin in the panel provider, publish config, add client ID/secret to config/services.php, declare the provider list, and register the callback URL in each IdP. Realistic estimate: 0.5–1 day for the first provider in dev, 2–4 days to production-grade (panel access enforcement, domain allowlisting, audit logging, tests, runbook). No schema changes are strictly required unless we want explicit provider/subject linkage for account reconciliation.
Technical risk.
Key questions.
composer.json, and is our version inside the CI matrix? (3.3.0 ships no dependency-constraint changes, so this gate is unaffected.)state handling standard Socialite, and does it work behind our load balancer / multi-domain cookie setup?user:email scope)?Stack fit. Unchanged. Presumes Laravel (10/11/12) + Filament 3/4 + Socialite. First gate is a composer why-not / constraint check against our pinned versions — if the constraint graph conflicts, the whole evaluation stops there. Enterprise-relevant providers (Google Workspace, Microsoft Entra ID) come via Socialite/community drivers; confirm driver freshness for Entra specifically, since that ecosystem lags upstream API changes.
Migration path. Purely additive, and 3.3.0 is a drop-in minor bump from 3.2.x with no migration steps. Keep email/password login live; gate the plugin per panel behind an env flag so we can enable it for a pilot cohort without touching the default path. If we later want explicit identity linkage, add nullable provider/provider_id (or a socialite_users table) in a follow-up migration — do not block the pilot on it. Exit plan is unchanged and cheap: if the package stalls, we own the two routes ourselves.
Compatibility. Two independent compatibility surfaces: (a) the package vs. our Filament/Laravel pins, (b) Socialite driver vs. each IdP's current OAuth/OIDC behavior. Both need explicit verification. Each environment (dev/staging/prod) needs its own IdP app registration or at minimum its own redirect URI — still the most common source of "works locally, fails in prod."
Sequencing. 3.3.0 does not reorder the plan; we would simply pin ^3.3 when we start step 3.
canAccessPanel and an email-domain allowlist on first login.Maintenance. Still an unmaintained-risk dependency, but marginally de-risked: pin ^3.3, watch releases, and budget ~1–2 days per quarter plus the cost of tracking Filament majors. Mitigate by keeping our own configuration and user-resolution logic in application code rather than forking, so a replacement swap is a one-file change.
Support. No vendor SLA. Support is community issues plus our own runbook. We own IdP console administration and client-secret rotation — assign a named owner and put rotation on the same cadence as other secrets. Document the break-glass admin path explicitly. Small runbook addition: 3.3.0 means a failed provider request now lands the user back on the login page rather than an error page, so first-line support should expect "I was bounced back to login" reports and check IdP config/consent state before assuming a package fault.
Scaling. Negligible runtime cost: OAuth is one redirect + one callback per login, no queue or storage implications beyond standard session. 3.3.0 adds one redirect on the failure path only. Practical limits are IdP-side: per-app rate limits, consent-screen throttling, and callback latency. Many panels/tenants is per-panel config hygiene rather than a performance concern.
Failure modes.
Ramp-up. Unchanged and low for any Laravel-fluent engineer: the package itself is a day's reading. The real learning is IdP console configuration, consent/scope decisions, and the account-linking policy — plan one sprint including tests, audit logging, and the runbook rather than treating it as a one-line dependency.
How can I help you explore Laravel packages today?