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

Laravel Confirm Email Laravel Package

beyondcode/laravel-confirm-email

Laravel package that adds email confirmation to the default authentication flow. After registration, users receive a signed confirmation link; middleware and routes protect unconfirmed accounts and support resending. Configurable views, redirects, and expiration make setup quick.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Closing an account-security gap on legacy auth without an auth rewrite. This package retrofits signed-link email confirmation onto Laravel's classic laravel/ui / make:auth stack — a trait on the User model, a middleware gate, package routes, and a notification. For teams still running pre-Breeze applications, it converts "unverified accounts are a live risk" into a shippable control in days rather than a quarter-long auth migration. Frame it as a decision: gate onboarding behind confirmation now, or accept the risk until the login system is modernized.

  • A defensible build-vs-buy call on a commodity capability. Email confirmation is solved ground — token generation, signed and time-limited URLs, resend handling, expiry, and the verified middleware. Where the architecture matches the package's assumptions (controller-based auth, standard users table, default mailer), adopting it is materially cheaper than hand-building. Be honest about what's being bought: speed and a closed gap, not differentiation.

  • A concrete input to the auth-modernization roadmap. The presence of this dependency in composer.json is a live marker that the app is on legacy auth. Each release — including 2.5.0's Laravel 13.x compatibility bump — is a natural checkpoint: is the cheaper long-term path to migrate to Breeze/Fortify, which ship verification natively, and drop this dependency? That reframes a routine maintenance bump as a roadmap decision rather than a chore.

  • De-risking the Laravel 13 upgrade. Release 2.5.0 adds no features and changes no APIs; its entire product value is that the framework upgrade doesn't force an emergency rebuild of verification. Treat it as an enabler for the platform upgrade, not a capability addition.

  • An explicit scope boundary. This is not a growth lever and should never be a roadmap line item. It belongs in dependency hygiene and tech-debt planning. Saying that out loud keeps it from being pitched as a feature and keeps the real decision — package vs. native — visible.

When to Consider This Package

Adopt when all of these hold:

  • The app runs legacy laravel/ui / make:auth scaffolding or a hand-rolled controller-based session auth flow. This is the package's core assumption; outside it, the value collapses.
  • Email verification does not already exist, and the team doesn't want to own token generation, signed-URL verification, resend throttling, and the confirmation middleware.
  • You're on a supported Laravel line — 2.5.0 explicitly covers Laravel 13.x, and earlier 2.x serves older majors. Verify the declared composer constraints against your PHP/Laravel matrix in CI, not just the changelog.
  • A small, narrowly scoped dependency is preferable to a full starter-kit migration right now.

Look elsewhere when:

  • You're on Breeze, Jetstream, or Fortify. All three ship MustVerifyEmail, verification routes, and middleware. Adding this duplicates behavior and risks route/middleware collisions — the real decision is "package vs. native," and native wins for new work.
  • You're starting a new application. Pick a modern starter kit on day one rather than adopting a legacy-auth package.
  • You need custom verification UX — branded multi-step flows, SMS/OTP as a parallel channel, domain-restricted verification, or admin-initiated re-verification. The opinionated flow becomes something to fight.
  • You require an actively feature-developed dependency or a vendor SLA. 2.5.0 is a single compatibility PR authored by community automation (laravel-shift), not the maintainer — a reactive-maintenance signal. Plan for fork cost, and if procurement gates on release cadence or support policy, this is a mismatch.

How to Pitch It (Stakeholders)

To executives: We have a small, free, open-source add-on that gives our older Laravel application a standard "confirm your email before you can log in" step — a security and account-hygiene control — without us building it. The latest release (2.5.0) does exactly one thing: keeps the package working when we upgrade to Laravel 13.x. That's the planning point — the framework upgrade won't force us to rebuild verification under pressure. There is no new product capability here, and I don't want it treated as a roadmap item. My recommendation is maintenance, not investment: keep it current while it's cheap, and put "migrate to Laravel's built-in modern auth, which includes verification for free" on the slate for the next time we touch the login system — that path lets us drop a dependency and likely reduce code we own.

To engineering: 2.5.0 is compatibility-only — Laravel 13.x support, no API changes, no deprecations, low upgrade risk. Two checks before we bump: (1) confirm we're genuinely still on legacy laravel/ui-style auth; on Breeze/Fortify this package is redundant and will collide with the starter kit's routes and middleware, in which case the right move is to remove it, not upgrade it. (2) Make sure integration tests cover the verify, resend, already-verified, and expired-link paths so the bump is provably safe. If we're staying, pin ^2.5.x, sequence the package bump before the Laravel 13 jump, and file a tech-debt ticket to migrate to native MustVerifyEmail. It's single-maintainer OSS in maintenance mode — document the native fallback plus config/route behavior, assign an internal owner, and monitor confirmation-flow 403s and mail-send failures, since undelivered email blocks onboarding outright.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager