jrean/laravel-user-verification
Adds email verification to Laravel out of the box: a trait and migration for a verified flag, token-based verification emails, routes and middleware to protect verified-only areas, plus configurable events and redirects. Easy to drop into existing user models.
Architecture fit
verified flag to the users table, a trait on the User model, routes, a controller, and a verification notification. All state lives in the app database — no external service, no new infrastructure.MustVerifyEmail, the verified middleware, signed verification URLs, and the VerifyEmail notification. Laravel 13 (the target of this release) does not change that calculus. For any Laravel ≥5.7 target, this remains a buy-vs-build question the framework already answers for free.Integration feasibility
composer require, publish config and migration, add the trait, override the notification view. Roughly 1–2 developer-days including tests and staging validation.verified column, a hand-rolled verification flow already in production, or trait/method conflicts with MustVerifyEmail.Technical risk
2026-04-28 timestamp anomaly — the project is being released, not merely timestamped. Active framework tracking is the single strongest argument for this package. 0 dependents remains likely an instrumentation gap and is now the weaker of the two signals.NOASSERTION means automated license scanning cannot classify the package. Even if the repo claims MIT, legal/compliance sign-off is required before it ships in a distributed product or a regulated environment. A new release does not remediate this.Key questions
MustVerifyEmail? Can we run it for a legacy cohort while new signups use native verification?Stack fit
MustVerifyEmail. Also poor for any app pinned below L13 that wants to stay on a maintained branch.Migration path
MustVerifyEmail + verified middleware. Zero dependency, zero license question, identical end-user UX, framework-owned upgrade path.EmailVerification interface so the implementation can be swapped to native later without touching call sites. The wrapper is now more important, not less: a package that majors in lockstep with the framework guarantees periodic forced upgrades.Compatibility
verified column and that it does not alter column semantics (nullable vs. default false) in a way that breaks existing queries. Re-verify specifically on v14.routes/web.php namespace and middleware groups, and diff the config file against the previous major.Sequencing
Maintenance
composer update — it is a coordinated major-version migration with a dependency we do not control. Budget a named internal owner and reserve maintenance capacity in every Laravel upgrade cycle. Vendor-watch for advisories and keep a fork contingency plan.Support
Scaling
Failure modes
Ramp-up
Bottom line for the roadmap: the recommendation is unchanged. Default to native Laravel email verification. Use this package only as a scoped bridge for legacy applications, wrapped behind an interface with an explicit exit criterion. What changed: v14.0.0 is a meaningful positive maintenance signal — the project is alive and tracking framework majors, which retires the abandonment concern from "elevated" to "moderate" and resolves the anomalous release timestamp. But it introduces a new structural risk rather than removing the old redundancy risk: a package-major per framework-major model makes our Laravel upgrade path contingent on a single maintainer's release cadence, and it narrows supported targets to L13. A ~19 composite score and an unclassified license still read as "tactical utility, low strategic opportunity" — now with a stronger vendor signal and a harder upgrade coupling.
How can I help you explore Laravel packages today?