svc/totp-bundle
A PHP/Symfony bundle for TOTP-based two-factor authentication, generating and validating time-based one-time passwords with seamless framework integration and straightforward configuration for securing user logins.
scheb/2fa-bundle, so it shifts effort from UI construction to integration review. Note the decision fork: the engine (Scheb) is mature and widely depended upon; the UI layer (this package) is unproven. You can adopt Scheb on its own merits and treat this UI as optional, replaceable scaffolding.pragmarx/google2fa and this package becomes a design reference only.Consider it when:
scheb/2fa-bundle with Twig available. This is the natural, low-ceremony fit — near drop-in only if Scheb's 2FA core is already wired into a firewall.Look elsewhere when:
laravel/fortify (ships TOTP and recovery codes), or a small Blade UI over pragmarx/google2fa with bacon/bacon-qr-code. The bundle's Symfony service wiring and Twig templates won't port; adopting it in Laravel is a rewrite, not an install.web-auth/webauthn-lib or Symfony UX are the relevant paths.To executives: This is a small open-source UI layer that can shortcut the TOTP enrollment screens required by enterprise security reviews — potentially saving a sprint or two on a checkbox that unblocks deals. It is not a validated dependency: it's a single-maintainer project with essentially zero adoption, and it is a Symfony component despite the Laravel/PHP framing. The recommendation is to treat it as a reference implementation we fork and own, not as a vendor we rely on. Budget a security review either way; the 2FA engine underneath (Scheb) is the mature part and carries most of the risk reduction. If our estate is Laravel-first, the equivalent shortcut is Fortify, and this package becomes a UX reference rather than a dependency.
To engineering: It's a thin Symfony UI over scheb/2fa-bundle — Twig templates, setup controllers, QR rendering, and backup-code display, with no security guarantees of its own. Expect to vendor/fork under MIT, pin a commit, and review the enrollment and verification paths for CSRF, secret exposure in logs/telemetry, secure backup-code storage, and rate limiting. Sequencing matters: prove end-to-end TOTP on Scheb's default templates first, then layer this UI and compare — if the defaults suffice, stop and don't take the dependency. Roll out behind a feature flag with the parent bundle's default templates as a documented kill switch. On Laravel, this does not apply — Fortify covers the same ground with a maintained upstream, and total integration cost should be compared before choosing.
How can I help you explore Laravel packages today?