myshell/laravel-account-verification
Mail, Events, Notifications) and follows Laravel conventions (e.g., ServiceProvider, Facade). This ensures seamless integration with existing Laravel applications.symfony/mailer). This minimizes integration friction.Verified, VerificationFailed) for extensibility, allowing custom logic (e.g., analytics, notifications) without modifying the package.Mail facade or third-party SMTP services (e.g., Mailgun, SendGrid).database, redis drivers).Notifiable trait for user models.verified_users table). Assumes standard Laravel migrations.composer require myshell/laravel-account-verification
php artisan vendor:publish --provider="MyShell\AccountVerification\AccountVerificationServiceProvider"
config/account-verification.php) and migrations.config/account-verification.php for:
resources/views/vendor/account-verification/.MustVerifyEmail trait or manually implement verification logic:
use MyShell\AccountVerification\Traits\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail { ... }
Route::get('/email/verify/{id}/{hash}', [VerificationController::class, 'verify']);
MailFake for unit tests).composer.json constraints). May require adjustments for Laravel 11+.php-mbstring (for email validation) and php-openssl (for token hashing).Mail or Notification services.verified_users).composer.json to avoid surprises.config/account-verification.php to avoid hardcoded values.Mail logs or third-party tools (e.g., Mailtrap).verified_users table.Notifications directly).verified_users table on email and verified_at for large user bases.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| SMTP Service Outage | Users can’t receive verification emails | Use a fallback SMTP (e.g., backup provider) or notify users via alternative channels (e.g., SMS). |
| Token Collision | Race conditions in verification | Use UUIDs or database transactions for token validation. |
| Database Locks | High concurrency on verified_users |
Optimize queries, use database read replicas, or implement optimistic locking. |
| Expired Tokens | Users lose access to unverified accounts | Implement a "resend verification" flow or manual admin override. |
| Malicious Verification Requests | Brute-force attacks on tokens | Add rate-limiting (e.g., throttle middleware) or IP-based restrictions. |
| Package Abandonment | No updates for security bugs | Fork the package or replace with a maintained alternative (e.g., spatie/laravel-activitylog for related features). |
How can I help you explore Laravel packages today?