mixudev / laravel-authentication
Production-grade, modular, portable, and secure authentication package for Laravel applications.
Package info
github.com/mixudev/package_LaravelAuthentication
pkg:composer/mixudev/laravel-authentication
Requires
- php: ^8.1 || ^8.2 || ^8.3 || ^8.4 || ^8.5
- illuminate/auth: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/contracts: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/database: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/events: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/http: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/validation: ^10.0 || ^11.0 || ^12.0 || ^13.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0 || ^10.0 || ^11.0
- phpstan/phpstan: ^1.10 || ^2.0
- phpunit/phpunit: ^10.0 || ^11.0 || ^12.0
README
Arsitektur autentikasi enterprise siap produksi, modular, portable, dan aman (secure-by-default) untuk aplikasi Laravel 10.x, 11.x, 12.x, dan 13.x.
Dirancang untuk monolit web, REST API, SPA, maupun arsitektur multi-tenant tanpa perlu modifikasi pada core code aplikasi host.
Ringkasan Fitur Utama
| Modul & Fitur | Deskripsi Singkat |
|---|---|
| Passkey (FIDO2 / WebAuthn) | Login tanpa kata sandi via Touch ID, Face ID, Windows Hello, atau Security Key dengan dukungan autofill Conditional UI. |
| Multi-Factor Auth (2FA / TOTP) | Engine TOTP RFC 6238 mandiri (Google Auth, Authy, 1Password), kode pemulihan cadangan, dan fitur Trust This Device (30 hari). |
| Optimasi Skala 10M+ Data | Smart Fast-Path Credential Resolver dan Composite Indexing untuk performa pencarian < 1ms pada tabel puluhan juta baris. |
| Active Session & Device Manager | Deteksi platform/browser/IP, pencabutan sesi jarak jauh, dan Logout All Other Devices dengan konfirmasi password. |
| Granular Rate Limiting | Throttle counter independen per fitur (login, registration, otp, 2fa, forgot_password) mencegah cross-feature DoS. |
| Adaptive CAPTCHA & Bot Protection | Cloudflare Turnstile, Google reCAPTCHA v2/v3, dan hCaptcha dengan threshold otomatis (muncul setelah $N$ kali gagal). |
| OAuth Social Login | Autentikasi instan Google dan GitHub dengan layout modern yang sejajar dan responsif. |
| Passwordless OTP Email | Kode verifikasi sekali pakai kriptografis dengan limit percobaan dan auto-expiry. |
| Dual UI Template & Dark Mode | Template split (2 kolom) & card (kartu minimalis) dengan transisi mulus light, dark, dan auto (OS match). |
| 100% REST API Ready | Semua alur autentikasi tersedia dalam format JSON stateless (/api/v1/auth/*) dengan token Sanctum. |
Panduan Instalasi Cepat
1. Instalasi via Composer
composer require mixudev/laravel-authentication
Note
Untuk instalasi lokal / path repository (Monorepo), tambahkan repository path pada composer.json aplikasi Anda lalu jalankan composer require mixudev/laravel-authentication:@dev.
2. Setup Otomatis Satu Langkah (Direkomendasikan)
Jalankan perintah installer interaktif untuk mempublikasikan konfigurasi, migrasi, dan menyuntikkan class Tailwind CSS secara otomatis:
php artisan authentication:install
Atau jalankan manual jika ingin kontrol penuh:
# Publikasi konfigurasi & migrasi php artisan vendor:publish --tag=authentication-config php artisan vendor:publish --tag=authentication-migrations # Jalankan migrasi database php artisan migrate
Panduan Update Versi Baru
Ketika package merilis pembaruan versi (bugfix, fitur baru, atau peningkatan performa), lakukan langkah berikut pada aplikasi Anda:
# 1. Tarik pembaruan package terbaru composer update mixudev/laravel-authentication # 2. Jalankan migrasi jika ada skema database baru php artisan migrate # 3. Bersihkan cache view & konfigurasi php artisan view:clear php artisan config:clear
Tip
Jika Anda menggunakan Mode Single-Folder Module (modules/Authentication/), Anda dapat memperbarui modul dengan menjalankan php artisan authentication:install-module --force.
Ringkasan Konfigurasi (config/authentication.php)
return [ // Model user aplikasi host (tanpa hardcode App\Models\User) 'user_model' => \App\Models\User::class, 'guard' => 'web', // Fitur Kunci & Modul 'features' => [ // Passkey / WebAuthn FIDO2 Passwordless 'passkey' => [ 'enabled' => true, 'rp_name' => env('APP_NAME', 'Laravel'), 'user_verification' => 'preferred', 'timeout' => 60000, ], // Multi-Factor Authentication (2FA TOTP) 'two_factor' => [ 'enabled' => true, 'trust_device' => ['enabled' => true, 'duration_days' => 30], ], // Socialite OAuth (Google & GitHub) 'social' => [ 'enabled' => true, ], // Proteksi Bot Adaptif 'captcha' => [ 'enabled' => false, 'driver' => 'turnstile', // 'turnstile', 'recaptcha_v2', 'hcaptcha' 'trigger_after_failed_attempts' => 3, ], ], // Antarmuka & Tampilan UI 'ui' => [ 'layout' => 'card', // 'card' atau 'split' 'theme' => 'auto', // 'light', 'dark', atau 'auto' ], ];
Pusat Dokumentasi Lengkap (docs/)
Dokumentasi teknis mendalam telah disusun rapi di dalam direktori docs/:
- 1. Panduan Memulai & Instalasi
- 2. Mode Modul Mandiri (Single-Folder)
- 3. Penjelasan Lengkap Fitur & Saklar Konfigurasi
- 4. Panduan Kustomisasi Tampilan (Blade UI) / English Guide
- 5. Strategi Autentikasi & Cara Membuat Custom Strategy
- 6. Katalog Lengkap REST API JSON
- 7. Keamanan & Mitigasi Ancaman Siber
- 8. Daftar Kebutuhan Kunci API & Peta 49 Rute URL
- 9. Panduan Rilis & Standar Versioning
Standar Keamanan & Kode
- Zero Hardcoded Coupling: Tidak ada ketergantungan langsung ke
App\Models\User. Semua integrasi menggunakan dependency injection dan konfigurasi terpusat. - Sensitive Parameter Redaction: Semua argumen password dan secret menggunakan atribut
#[SensitiveParameter]PHP 8.2+ untuk mencegah kebocoran pada log dan error stack trace. - Fail-Closed by Design: Setiap anomali strategi atau channel yang tidak dikenali melempar explicit typed exceptions (
AuthenticationException). - Proteksi User Enumeration: Timing serangan enumerasi dinormalisasi agar waktu respons kredensial valid dan tidak valid bernilai konsisten.
- Pengujian Otomatis: Dilengkapi dengan unit & feature tests PHPUnit serta static analysis PHPStan Level 8.
# Menjalankan unit & feature tests vendor/bin/phpunit # Menjalankan static analysis level 8 vendor/bin/phpstan analyse
Lisensi
Package ini dirilis di bawah lisensi open-source MIT License.