• v1.0.0 a1104e0c5a

    daengdeni released this 2025-09-08 15:08:16 +07:00 | 2 commits to master since this release

    Deskripsi

    Modul Authentication adalah komponen yang dirancang untuk mengelola proses autentikasi pengguna dalam aplikasi. Modul ini menyediakan mekanisme login yang fleksibel dengan dukungan untuk autentikasi berbasis database lokal dan integrasi dengan User ID Management (UIM) eksternal. Modul ini menjadi gerbang keamanan utama untuk mengontrol akses ke aplikasi.

    Fitur Utama

    1. Sistem Autentikasi Fleksibel

    • Mendukung dua metode autentikasi yang dapat dikonfigurasi:
      • Autentikasi berbasis database lokal (Laravel default)
      • Integrasi dengan User ID Management (UIM) eksternal
    • Konfigurasi metode autentikasi melalui variabel lingkungan METHOD_AUTH
    • Login menggunakan email atau NIK (Nomor Induk Karyawan)

    2. Integrasi dengan User ID Management (UIM)

    • Koneksi ke server UIM eksternal untuk verifikasi kredensial
    • Komunikasi socket aman dengan server UIM
    • Sinkronisasi data pengguna dari UIM ke database lokal
    • Pemetaan otomatis peran pengguna berdasarkan kode grup dari UIM
    • Penyimpanan data sesi pengguna dari UIM

    3. Keamanan Tingkat Lanjut

    • Pembatasan percobaan login (rate limiting) untuk mencegah serangan brute force
    • Penanganan lockout otomatis setelah terlalu banyak percobaan gagal
    • Regenerasi ID sesi setelah login berhasil
    • Enkripsi password menggunakan bcrypt
    • Validasi input untuk mencegah injeksi dan input yang tidak valid

    4. Antarmuka Pengguna yang Responsif

    • Halaman login yang modern dan responsif
    • Dukungan untuk mode gelap (dark mode)
    • Tampilan pesan error yang informatif
    • Opsi "Remember me" untuk kenyamanan pengguna
    • Toggle visibilitas password

    5. Manajemen Sesi

    • Login dan logout yang aman
    • Penyimpanan data sesi pengguna
    • Invalidasi sesi saat logout
    • Regenerasi token CSRF saat logout

    Integrasi dengan Sistem

    Konfigurasi UIM

    Modul ini dapat dikonfigurasi untuk berintegrasi dengan User ID Management melalui variabel lingkungan berikut:

    • METHOD_AUTH: Mengatur metode autentikasi ('uim' atau default)
    • IP_USER_MANAGER: Alamat IP server UIM
    • PORT_USER_MANAGER: Port server UIM
    • APP_ID: ID aplikasi untuk autentikasi di UIM

    Integrasi dengan Modul Lain

    • Usermanagement: Menggunakan model User untuk penyimpanan dan manajemen data pengguna
    • Basicdata: Menggunakan model Branch untuk mengaitkan pengguna dengan cabang berdasarkan data dari UIM

    Persyaratan Sistem

    • Laravel 12
    • PHP 8.3 atau lebih tinggi
    • Koneksi ke server UIM (opsional, tergantung konfigurasi)
    Downloads