# Modul Biometrik

Modul ini menangani fitur otentikasi menggunakan sidik jari dan deteksi wajah dalam sistem absensi mobile.

## Daftar Isi
- [Endpoint API](#endpoint-api)
- [Aktivasi Biometrik](#aktivasi-biometrik)
- [Verifikasi Biometrik](#verifikasi-biometrik)
- [Integrasi Mobile](#integrasi-mobile)

## Endpoint API

| Method | Endpoint | Deskripsi |
|--------|----------|-----------|
| POST | `/api/biometric/enable` | Mengaktifkan otentikasi biometrik |
| POST | `/api/biometric/verify` | Memverifikasi identitas menggunakan biometrik |

## Aktivasi Biometrik

Endpoint ini digunakan untuk mengaktifkan otentikasi biometrik pada akun pengguna.

### Request
```http
POST /api/biometric/enable
Authorization: Bearer {token}
Content-Type: application/json
```

**Body:**
```json
{
  "type": "fingerprint|face",
  "device_id": "string"
}
```

### Response
```json
{
  "success": "boolean",
  "message": "string"
}
```

### Validasi
- `type`: Wajib, nilai hanya bisa "fingerprint" atau "face"
- `device_id`: Wajib, ID perangkat yang digunakan

## Verifikasi Biometrik

Endpoint ini digunakan untuk memverifikasi identitas pengguna menggunakan data biometrik.

### Request
```http
POST /api/biometric/verify
Content-Type: application/json
```

**Body:**
```json
{
  "type": "fingerprint|face",
  "biometric_data": "string"
}
```

### Response
```json
{
  "verified": "boolean",
  "token": "string"
}
```

### Validasi
- `type`: Wajib, nilai hanya bisa "fingerprint" atau "face"
- `biometric_data`: Wajib, data biometrik dalam format yang sesuai

## Integrasi Mobile

### Aktivasi Biometrik
1. Aplikasi mobile mendeteksi apakah perangkat mendukung fitur biometrik
2. Jika mendukung, tampilkan opsi untuk mengaktifkan otentikasi biometrik
3. Jika pengguna menyetujui, kirim data ke endpoint `/api/biometric/enable`
4. Simpan status aktivasi biometrik di lokal

### Verifikasi Biometrik
1. Saat login, jika biometrik diaktifkan, tawarkan opsi login menggunakan biometrik
2. Jika pengguna memilih, aktifkan sensor biometrik perangkat
3. Setelah verifikasi berhasil di perangkat, kirim data ke endpoint `/api/biometric/verify`
4. Jika verifikasi backend berhasil, simpan token dan arahkan ke halaman utama

### Catatan Teknis
- Data biometrik tidak disimpan di server, hanya digunakan untuk verifikasi sesi
- Gunakan enkripsi end-to-end untuk data biometrik saat dikirim
- Pastikan kebijakan privasi mencakup penggunaan data biometrik