lakm/nopass
Passwordless authentication helpers for Laravel 10/11. Send secure verification links or one-time passcodes (OTP) to log users in without passwords. Includes configuration, usage examples, testing, and security guidance.
Illuminate\Contracts\Auth\Authenticatable), enabling seamless integration with existing auth stacks (Breeze, Jetstream, Sanctum, Passport).NoPassGenerated, NoPassValidated) for analytics, logging, or custom logic.NoPass facade abstracts complexity, requiring minimal boilerplate.NoPass::for($user)->email()->generate()) simplifies implementation.login-link, verify-otp).Auth::login($user) or middleware.| Risk Area | Severity | Mitigation |
|---|---|---|
| Security | Medium | - Audit signed URL generation (e.g., signedRoute()) for replay attacks. |
| - Implement CSRF tokens for email links or use one-time-use tokens. | ||
- Add rate limiting (e.g., Laravel’s throttle) to OTP/email generation. |
||
| Performance | Low | - Test OTP/email delivery under load (e.g., 10K requests/hour). |
| - Use queue workers for mail/SMS to avoid blocking requests. | ||
| Compatibility | Low | - Verify with Laravel 12/13’s latest auth contracts (e.g., MustVerifyEmail). |
| Maintenance | Low | - MIT license; monitor for updates (last release: 2026-04-20). |
| User Experience | Medium | - Design fallback flows (e.g., "No email? Use OTP" or "Try password"). |
LoginController with custom logic using NoPass::for($user)->email()->generate().Authenticatable models via the NoPass facade./auth/otp, /auth/link).Phase 1: Pilot (Guest Users)
NoPass::for($user)->email()->generate() + custom route for validation.Phase 2: Hybrid Auth
NoPass::for($user)->otp()->generate() + Twilio integration.Phase 3: Full Passwordless
LoginController to redirect to passwordless flows by default.composer require lakm/nopass and php artisan vendor:publish for config.User model implements Illuminate\Contracts\Auth\MustVerifyEmail if using email links.MAIL_MAILER=queue in .env).users table + optional no_pass_attempts (if tracking).composer require lakm/nopass.php artisan vendor:publish --provider="LakM\NoPass\NoPassServiceProvider"..env.Route::get('/verify-link', [NoPassController::class, 'verify'])).LoginController to use NoPass::for($user)->email()->generate().NoPass facade methods (e.g., generate(), isValid()).MailFake or Twilio’s sandbox.NoPass events (e.g., NoPassGenerated) to track usage..env.NoPass config for link_expiration_minutes.Auth::login($user) is called post-validation.tail -f storage/logs/laravel.log for NoPass events.How can I help you explore Laravel packages today?