raditzfarhan/laravel-user-security
Illuminate\Auth). It integrates with Laravel’s user model and authentication middleware, making it a non-disruptive extension for security-sensitive applications (e.g., financial, healthcare, or admin dashboards).security_pins, mnemonic_keys, two_factor_auth), which may conflict with existing auth schemas (e.g., if using spatie/laravel-permission). Risk: Schema conflicts if the app already has custom auth tables.laravel/breeze/laravel/jetstream (may override auth flows).spatie/laravel-permission (if extending User model).laravel-breeze or filamentphp/filament for pre-built components.| Risk Area | Severity | Mitigation |
|---|---|---|
| Schema Conflicts | High | Audit existing migrations; use Schema::hasTable() checks before running. |
| Auth Flow Overrides | Medium | Test with Auth::attempt() and Route::middleware('auth:rfauth'). |
| Cryptographic Weaknesses | Medium | Validate mnemonic key generation (e.g., BIP39 compliance) and PIN hashing. |
| Lumen Middleware Gaps | Low | Extend App\Http\Middleware\Authenticate to include RF middleware. |
| Performance Overhead | Low | Benchmark 2FA token generation (TOTP/HOTP) in high-traffic routes. |
breeze/jetstream (minimal conflict).laravel-activitylog + custom guards).paragonie/constant_time_compare).Phase 1: Evaluation
composer require raditzfarhan/laravel-user-security --dev
php artisan vendor:publish --provider="RaditzFarhan\UserSecurity\UserSecurityServiceProvider"
php artisan migrate --path=/vendor/raditzfarhan/laravel-user-security/database/migrations
Phase 2: Incremental Rollout
spatie/laravel-feature-flags) to toggle RF middleware per route.User model to include RF traits:
use RaditzFarhan\UserSecurity\Traits\HasSecurityPin;
use RaditzFarhan\UserSecurity\Traits\HasMnemonicKey;
use RaditzFarhan\UserSecurity\Traits\HasTwoFactorAuth;
Phase 3: Frontend Integration
Route::middleware(['auth', 'rf.two-factor'])->group(function () {
// Admin dashboard
});
| Component | Compatibility Notes |
|---|---|
| Laravel 5.5–9.x | ✅ Full support (auto-discovery). |
| Lumen 5.8+ | ✅ Supported, but requires manual facade setup. |
| PHP 7.4+ | ✅ Required (check composer.json). |
| Database | ✅ MySQL, PostgreSQL, SQLite (test transactions for mnemonic keys). |
| Caching | ⚠️ 2FA tokens may need Redis for distributed setups. |
| Queues | ❌ No built-in queue jobs (e.g., for email-based 2FA). |
rf.two-factor middleware after testing auth flows.laravel-debugbar to track:
rfauth middleware execution time.security_pins table.git log --oneline).config/rfauth.php.RFAuthenticator::attempted()).App\User class.security_pins table may grow with user base; consider partitioning if >1M users.encrypt helper is sufficient for most cases).artisan rfauth:test --users=10000 --requests=10000
(Note: Package lacks built-in testing; use laravel-shift/laravel-testing for custom scripts.)| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Database migration fails | Blocked auth for all users | Rollback with `php artisan rfauth:migrate:rollback |
How can I help you explore Laravel packages today?