30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# Autentikasi & otorisasi
|
|
|
|
## Web (admin / site)
|
|
|
|
- **Ion Auth** (`application/third_party/ion_auth`), di-autoload (`application/config/autoload.php`).
|
|
- Login form: `Site::login` + `Site::login_auth` memanggil `$this->ion_auth->login()`.
|
|
- Pembatasan halaman: `MY_Controller` membaca `page_auth` dari config modul (`ci_bootstrap.php`) dan `ion_auth->in_group()`.
|
|
|
|
### CI4 (rencana)
|
|
|
|
- Opsi: **CodeIgniter Shield**, **Myth\Auth**, atau port minimal Ion Auth (berat).
|
|
- Admin layout saat ini **belum** memakai filter login — sengaja untuk foundation UI.
|
|
|
|
## API mobile (`Json.php` / CI4 `MobileJsonService`)
|
|
|
|
- **Login:** `username` + `password` → hash **MD5** di kolom `pegawai.password` (kompatibilitas dipertahankan).
|
|
- **Token:** string disimpan di kolom `pegawai.token`; diperbarui saat login; divalidasi per-request via POST `token`.
|
|
- **Bukan** JWT dari modul `api` (`Jwt_client.php`) — dua jalur autentikasi terpisah.
|
|
|
|
### Peningkatan masa depan (tanpa memutus mobile sekarang)
|
|
|
|
- Password: `password_hash` + kolom migrasi bertahap atau dual-verify.
|
|
- Token: JWT stateless + refresh, atau token hash di DB.
|
|
- Rate limiting pada `login`.
|
|
|
|
## File terkait CI4
|
|
|
|
- `app/Services/Mobile/MobileJsonService.php` — `login`, `loginWToken`, `savePassword`
|
|
- `app/Libraries/LegacyUtf8Encoder.php` — encoding respons (bukan auth)
|