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

Two Factor Authentication Filament Laravel Package

liberusoftware/two-factor-authentication-filament

Adds two-factor authentication to Filament panels. Users enrol via an authenticator app, confirm with a one-time code, and store recovery codes. Includes challenge screens for login, profile pages for enabling or disabling 2FA, and configurable enforcement per panel.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is scoped as a presentation adapter — the Filament-facing layer (pages, resources, form actions, widgets) over a separate two-factor domain module. Architecturally that is the right shape: UI concerns isolated from the authentication domain, so the adapter is thin, replaceable, and testable in isolation. For a TPM this matters because it caps the blast radius — if the adapter is abandoned we can reimplement the UI against the underlying domain service without touching token generation, secret storage, or recovery-code logic. The caveat is that the split only pays off if the core module is genuinely independent; if the adapter smuggles in business logic or reimplements verification flows, the abstraction is cosmetic.

Integration feasibility. Non-trivial but bounded. Realistically this requires: a Laravel application on a Filament-compatible version, the companion 2FA domain package installed and configured, published config and migrations, and panel registration of the adapter's pages/resources. Effort is days, not weeks, for a developer already fluent in Filament — provided the version matrix lines up. The dominant unknown is Filament major-version compatibility (v3 vs v4 APIs diverge substantially around forms, actions, and panel providers). Treat the composer constraints as the first thing to verify, not the last.

Technical risk. High, and concentrated in provenance rather than code quality:

  • License is NOASSERTION. This is a procurement blocker, not a footnote. We cannot ship a security-critical dependency into a commercial product without a declared, reviewed license. Resolve before any code is written.
  • Zero stars, zero dependents. No third-party validation, no downstream users surfacing bugs, no evidence of production use. We would be the first meaningful adopter.
  • Security-critical surface with no security posture. 2FA enrollment, secret provisioning, and recovery codes are exactly where a subtle bug becomes an account-takeover vector or a helpdesk flood. Expect no CVE process, no disclosure policy, no audit trail.
  • Single-maintainer / suite-generated risk. The liberusoftware/module-* naming pattern suggests a generated or scaffolded family of packages; verify there is real maintenance intent (commit cadence, issue responsiveness) rather than a one-time publish.

Key questions.

  1. What license actually applies, and is it compatible with our distribution model (SaaS vs on-prem)?
  2. Does it depend on a separate core 2FA package, and is that package maintained and licensed acceptably?
  3. Which Filament and Laravel major versions are supported — is there a tested constraint matrix or only ^3.0-style optimism?
  4. Does it use Laravel Fortify / a vetted 2FA implementation internally, or bespoke crypto and secret handling?
  5. Are TOTP secrets encrypted at rest with the application key? Are recovery codes hashed and single-use?
  6. Is there a test suite covering enrollment, verification, recovery, and disable flows?
  7. What is the upgrade story when Filament ships its next major?

Integration Approach

Stack fit. Good fit if we have standardized on Filament for admin/internal panels and Laravel for the host application. In that context the adapter gives us a familiar, idiomatic UI for free and avoids hand-rolling enrollment screens — the highest-value part of the package. Poor fit if Filament is incidental to our stack; the adapter then drags in a framework we do not otherwise operate.

Migration path. Do not consume this as a floating Composer dependency. Recommended path:

  1. Vendor it. Fork into our namespace (or commit the source under app/Modules/ with attribution) and pin to a specific commit SHA. Zero dependents means no ecosystem pressure to keep it current; upstream drift is a liability, not an asset.
  2. Assert the license first. If NOASSERTION resolves to something permissive, vendor-and-own is clean. If it resolves restrictively, the correct decision is reference the UX, reimplement the adapter — the presentation layer is the cheap part to rebuild.
  3. Keep the domain separable. Wire the adapter to an interface we own (TwoFactorService), so swapping the underlying domain package later is a binding change, not a rewrite.

Compatibility. Validate explicitly against our pinned Filament, Laravel, and PHP versions before committing. Check that published migrations and config keys do not collide with existing schema, and that the adapter's panel registration does not assume a specific panel ID or route prefix.

Sequencing.

  • Spike (1–2 days): stand up in a sandbox app with our exact version pins; exercise enroll → verify → recover → disable end to end.
  • License and security review (parallel, gating): resolve license; review secret storage and recovery-code handling. Do not proceed on a "probably fine."
  • Build-vs-vendor decision: adopt vendored fork, or reimplement the ~3 screens against our own 2FA service. For a security-critical flow with this little upstream signal, reimplementation is a defensible default.
  • Integrate behind a feature flag, admin-only first, then general availability.
  • Rollout with a documented recovery runbook and support-desk scripting before broad enablement.

Operational Impact

Maintenance. We will own this code in practice. Budget for: re-validating the adapter on every Filament major upgrade (roughly annual), and auditing it whenever the underlying domain package changes verification semantics. A vendored fork means merge cost is near-zero, but so is upstream benefit — we should not expect fixes to arrive from the maintainer.

Support. No SLAs, no maintainer responsiveness, no security advisory feed. Our own team is the escalation path. That is acceptable for a UI adapter and unacceptable if the adapter is the only thing standing between users and their second factor.

Scaling. Effectively free — it is a presentation layer over existing auth infrastructure, adds no services, no queues, no storage beyond whatever the domain package already uses. Load characteristics are those of any Filament page.

Failure modes to design against.

  • Lockout. Broken enrollment or verification traps users with no second factor and no bypass. Must have an admin-initiated reset path and a tested recovery-code flow before GA.
  • Silent downgrade. A failed migration, config mismatch, or panel registration error that disables the 2FA challenge without failing loudly. Enrollment state should be asserted and monitored, not assumed.
  • Version drift. A Filament upgrade breaks panel boot, taking down admin access entirely — a 2FA adapter failure cascading into an admin-panel outage is a bad trade.
  • Recovery-code defects. Reusable, unhashed, or non-invalidated codes are a quiet, durable security hole.
  • Support-load spike. Users who lose devices generate helpdesk tickets; plan identity-verification procedure for resets so the recovery process does not become the weakest link.

Ramp-up. Low for any developer comfortable with Filament — a half-day to read the adapter and its domain dependency. The real ramp is on the security review side: someone must own understanding secret lifecycle, replay windows, clock-skew tolerance, and recovery semantics. Assign that owner explicitly; it is the difference between "we shipped 2FA" and "we shipped 2FA that holds up."

Bottom line for the decision record: this is a low-maturity, unvalidated package addressing a high-consequence domain. Its value is a modest head start on three or four UI screens. Its risk is legal ambiguity plus permanent ownership of a security-critical surface. Fund a short spike and a license/security gate; default to vendoring or reimplementing rather than depending, and do not let zero-stars be the only reason to say no — let the license and security review be the actual gate.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource