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 Bundle Laravel Package

scheb/two-factor-bundle

Symfony bundle that adds two-factor authentication to your app with TOTP, email codes, backup codes, trusted devices, and extensible authentication providers. Integrates with Symfony security and supports custom providers and recovery workflows.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Compliance and enterprise-sales gating. Two-factor authentication is a checkbox item on nearly every security questionnaire (SOC 2, ISO 27001, HIPAA, PSD2/SCA). This package is the kind of dependency that shows up in a "we already have MFA" answer — the PM decision it informs is whether that answer is defensible.
  • Build vs. buy for authentication. MFA is a well-trodden problem; the real decision is "adopt a maintained library" vs. "build in-house" vs. "buy a managed identity provider (Auth0, Okta, WorkOS)." This package is a data point on the buy/adopt side only if it were healthy — and it is not, which itself sharpens the recommendation.
  • Framework and platform strategy. Correcting an earlier assumption: this is a Symfony bundle, not a Laravel package. The 4.x line tracked upstream Symfony, and the final release (v4.18.4) is explicitly a Symfony 5.2 compatibility fix — so it is not accurate to describe it as Symfony 2/3-only. The material point for the roadmap is unchanged: there is no path from this bundle into Laravel's service container, auth guards, or middleware. Any roadmap item that assumes "drop this into our Laravel app" is wrong and should be corrected before it reaches a sprint.
  • Dependency lifecycle and vendor-risk posture. The last release is v4.18.4, published 30 October 2020, and it is a narrow compatibility patch — the maintenance equivalent of a closing door, not a reopening of the project. Combined with the archived repo and the [ABANDONED] marker redirecting users to scheb/2fa, that is a clean signal for a "no new adoption" policy and for prioritizing a migration ticket if it is already in the stack.
  • Legacy modernization sequencing. For teams running an existing Symfony install that still depends on this bundle — including 4.x/5.x applications pinned to the 4.x line — this is a concrete migration unit to scope. MFA is security-critical, so its replacement is not deferrable the way a cosmetic dependency might be. A Symfony 5.2 compat fix is a reminder that these installs exist and were being kept afloat up to the archive date, not that they are supported going forward.

When to Consider This Package

Consider it only in one narrow scenario: you maintain an existing Symfony application that already depends on scheb/two-factor-bundle (2.x/3.x-era installs, or a 4.x install touching Symfony 5.2), and you need to understand its current behavior before migrating. Even then, the decision is "plan the exit," not "adopt."

Look elsewhere — decisively — when:

  • The stack is Laravel. This is a Symfony bundle and will not integrate with Laravel's service container, auth guards, or middleware. Laravel-native options (Laravel Fortify, pragmarx/google2fa, or a managed IdP) are the correct universe of choices.
  • You are on a current Symfony release or planning an upgrade. The successor, scheb/2fa, is the maintained path. The v4.18.4 patch fixed Symfony 5.2 specifically; that was a ceiling at a point in time, not a support commitment, and adopting it now creates migration debt on day one.
  • You are starting anything new. An archived repo with no security patch cadence is a liability in an authentication path — the one place you least want unpatched code.
  • You need modern MFA modalities (WebAuthn/passkeys, push, TOTP with recovery-code UX that meets current expectations). The successor and managed providers cover this; a 2020-era bundle does not.
  • Procurement or security review is involved. "Archived, self-declared abandoned, final release was a single-version compat patch" is a fast fail in most third-party risk assessments.

How to Pitch It (Stakeholders)

For executives: The package in question is a two-factor authentication library for Symfony applications. It is formally archived, its last release was in October 2020 — a narrow compatibility fix with nothing since — and its own maintainer directs users to a replacement. It is also a Symfony bundle, so it cannot serve our Laravel stack regardless of its condition. The recommendation is do not adopt. If we rely on MFA as a compliance or enterprise-sales answer, we need a maintained dependency behind it; an abandoned library in the authentication path is a finding waiting to happen in a security review. The cost of choosing the maintained alternative now is near zero; the cost of discovering this during a customer audit or a Symfony upgrade is not.

For engineering: Framework mismatch is the first blocker — this is a Symfony bundle with no path into Laravel's auth stack. Second, the repo is archived and superseded by scheb/2fa; the final release (v4.18.4) only patched Symfony 5.2 compatibility before the project went dark, so treat it as a migration source, not a candidate. The 4.x line did reach Symfony 5.2, which means there may be more installs in the estate than a "Symfony 2/3 only" search would surface — widen the inventory query accordingly. For Laravel work, evaluate Fortify plus a TOTP library, or a managed identity provider if we want passkeys and recovery flows without owning the surface area. If any legacy Symfony service still runs this, please surface it so we can size the upgrade alongside the Symfony version bump rather than as a separate scramble.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core