Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Socialite Laravel Package

jeffersongoncalves/filament-socialite

A Filament plugin that adds social login to your admin panel using Laravel Socialite. Let users sign in with Google, GitHub, Facebook, and other providers, with easy configuration of providers, buttons, and redirects for a smooth authentication experience.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Baseline note: No prior assessment exists; this establishes the baseline at v2.0.0. Evidence is limited to the release notes — no source review, test suite results, or composer.json constraints were available, so several items below are flagged as open questions rather than findings.

Architecture fit

  • The package is a Filament panel plugin (SocialitePlugin) rather than a standalone auth package, so it composes into the panel provider's plugin() registration. That is the idiomatic Filament v4 extension pattern and keeps configuration declarative and per-panel.
  • Feature scope is deliberately narrow: render an OAuth button on the login form, register redirect/callback routes, and delegate account linking to jeffersongoncalves/laravel-socialite. Low surface area is good for a TPM: fewer integration points to own.
  • Multi-panel awareness (routes and callback URLs generated per panel) is the architecturally significant detail. It means one application can expose different provider sets on, e.g., an admin panel and a customer panel without route collisions — but it also means callback URLs are derived from panel routing state, which is a common source of misconfiguration across environments.
  • The AUTH_LOGIN_FORM_AFTER render hook dependency is the main architectural coupling. Button placement is inherited from Filament's auth view structure; if that hook is renamed or its ordering changes in a v4 minor, UI placement breaks silently rather than erroring.
  • The plugin is a UI/orchestration layer over Socialite, not a replacement for it. Teams still own provider credentials, OAuth app registration, and consent-screen configuration outside the codebase.

Integration feasibility

  • Straightforward for a team already on Filament v4: publish config, register the plugin on the panel, add providers via the fluent Provider API, add client_id/client_secret/redirect env entries. Realistic spike: half a day to a green callback in a dev environment per provider.
  • Two viable adoption paths: greenfield (plugin is the only social auth implementation) or replacement of a hand-rolled Socialite button + controller. The latter is where effort concentrates, because custom user-matching logic must be re-expressed as resolveUserUsing / createUserUsing callbacks.
  • The optional registration with canAccessPanel() gating is the feature that makes this viable for admin panels, where "authenticate with Google" must not imply "gain access." Confirm it is enforced at login time, not only at render time.
  • Technical risk (highest first):
    1. Account linking / takeover. If resolveUserUsing matches an existing user by email, and the provider does not guarantee verified email (or the app trusts an unverified one), an attacker can link to a victim's account. This is the single finding that can block adoption.
    2. Transitive dependency. Account-linking behavior lives in jeffersongoncalves/laravel-socialite, a personal-namespace package. Its release cadence, test coverage, and maintenance posture are now your auth path's posture.
    3. Stateless mode. The stateless provider flag disables OAuth state validation. Legitimate for some mobile/native flows; dangerous as a default on a web login form.
    4. Version pinning. v2.0.0 is the first Filament v4 release; expect early-lifecycle defects. Pin exact versions and treat minor bumps as reviewable changes.
    5. i18n coverage. English and pt-BR only — cosmetic, but it will surface as a support ticket from non-English locales.
    6. Major-version coupling. v2.0.0 implies v1.x targeted Filament v3, so this package's majors track Filament's. Plan for coordinated upgrades.

Key questions

  • How does resolveUserUsing match accounts, and does it require a verified email from the provider?
  • What is stored after linking (provider ID, tokens, scopes), where, and is a migration published?
  • Is state validated by default, and what exactly does stateless opt out of?
  • Is there per-panel provider isolation — can admin and public panels use different provider sets and different post-login redirects?
  • Does it support existing-user login only (no registration), and does it degrade safely when registration is disabled?
  • Which Filament v4 minor and Laravel versions are supported, and is there a CI matrix against them?
  • Are callback routes rate-limited, and do they handle provider error responses (error=access_denied) gracefully?
  • Test coverage, license, and maintainer count for both this package and laravel-socialite.

Integration Approach

Stack fit

  • Requires Filament v4 as a hard floor. Laravel version is bounded by Filament v4's own constraints. This is not available to Filament v3 applications — no backport path should be assumed.
  • Fits any app where the login surface is a Filament panel: admin back-offices, internal tools, customer portals built on panel auth. It fits poorly where auth is a bespoke controller-based flow with no panel, since the value is the render-hook injection and panel-scoped routes.
  • Assumes a session-based, stateful web login. Applications using token/API auth for the same endpoints get no benefit.

Migration path

  • Three scenarios: (a) new panel, no existing social auth — near-zero migration, configuration only; (b) replacing a hand-rolled Socialite implementation — port the user-matching logic into resolveUserUsing/createUserUsing before enabling the button, and run both flows in parallel behind a flag; (c) coming from the v1.x (Filament v3) line — this is a synchronized major upgrade with Filament itself, so schedule it as part of the Filament v4 upgrade, not as an independent change.
  • Existing linked accounts must be validated against whatever the laravel-socialite schema expects. If your current implementation stores provider identity in a custom table, plan a data reconciliation step rather than a clean cutover.

Compatibility

  • Pin exact versions of both packages. Do not float constraints on an auth-path dependency at v2.0.0.
  • Verify the render-hook name against the installed Filament minor before committing; a hook rename degrades to "no buttons appear," which is easy to miss in review and obvious in production.
  • Confirm translations directory is publishable, so locales beyond en/pt-BR can be added without forking.

Sequencing

  1. Read the source, not the release notes. Validate linking logic, state handling, and route middleware. Timebox one day.
  2. Dev spike with a real provider (Google or Entra ID) on a scratch panel; capture the exact callback URL format.
  3. Security review of resolveUserUsing, stateless, and canAccessPanel() enforcement — blocking gate.
  4. Provider app registration per environment (dev/staging/prod) with distinct callback URLs and secrets in the secret store.
  5. Staging rollout to an internal-only panel population; instrument callback success/failure.
  6. Production rollout behind a feature flag; keep the password path enabled as fallback for at least one release cycle.
  7. Reconcile or decommission any legacy social-auth code and its stored provider identifiers.

Operational Impact

Maintenance

  • Two packages on the auth path now: this plugin and laravel-socialite. Both need version tracking, changelog review, and a named owner. Budget a recurring review each Filament minor release — the render hook and panel-routing APIs are the expected breakage points.
  • OAuth provider consoles are an ongoing operational artifact: consent screen verification, client secret rotation, redirect URI changes when panel domains or paths change. This is the upkeep teams most often forget to assign.
  • The package's majors track Filament's, so maintenance events cluster around Filament upgrades rather than arriving independently.

Support

  • Expect tickets in three shapes: "the button doesn't appear" (render hook or plugin registration), "redirect_uri_mismatch" (environment or proxy/domain config), and "my social login created a second account" (email mismatch between provider and app record). The third is the expensive one and is a product policy decision as much as a technical one.
  • Non-en/pt-BR locales will need translation additions via the publishable lang files.
  • Support staff need a documented recovery path for users who cannot use their social provider — i.e., password reset must remain functional regardless.

Scaling

  • Runtime cost is negligible: OAuth is two external HTTP round-trips per login, off the hot path. No meaningful capacity planning required at typical panel concurrency.
  • The scaling concern is organizational, not infrastructural: provider rate limits on the token endpoint and per-provider app quotas apply, and multi-region or multi-domain deployments multiply the redirect-URI surface that must be registered and kept consistent.
  • Multi-panel deployments should be load-tested only for the callback route's session behavior behind load balancers, where state/session affinity issues surface.

Failure modes

  • Provider outage or API change — login via that provider is unavailable; password login must remain as fallback. Do not make social the sole auth method.
  • Misconfigured callback URL — hard failure at the provider with an opaque error, typically after a domain, proxy, or APP_URL change. Most common production incident for this class of package.
  • Silent UI regression — a Filament hook rename removes the buttons without an error. Add a smoke test or uptime check that asserts the button renders on the login page.
  • Account duplication or takeover — the highest-severity, lowest-frequency failure; mitigated by the linking-logic review in step 3.
  • Stateless misconfiguration — enables CSRF-style login forgery; treat any stateless: true in a web panel as a defect unless documented as intentional.
  • Unpinned transitive dependency — an unexpected laravel-socialite release changes linking behavior. Exact version constraints are the mitigation.

Ramp-up

  • Low for a Laravel-fluent engineer: roughly a day to a working provider in dev, two to three days including security review and staging validation. TPM-level understanding of the config surface takes under an hour.
  • Higher for teams without prior Socialite experience: the learning is in OAuth app registration, consent screens, and account-linking policy, not in the plugin's API.
  • Recommended onboarding artifact: a one-page runbook covering per-environment callback URLs, secret rotation, the chosen account-linking policy, and the password-login fallback. That document, not the plugin, is what keeps this operable.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums