From c13fe20bbb86cbf63fd132bcd1b14a09aff7d53d Mon Sep 17 00:00:00 2001 From: BimaSatriaBuana Date: Wed, 15 Jul 2026 05:39:54 +0700 Subject: [PATCH] delete --- laporan_autentikasi_baru.md | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 laporan_autentikasi_baru.md diff --git a/laporan_autentikasi_baru.md b/laporan_autentikasi_baru.md deleted file mode 100644 index 1b76872..0000000 --- a/laporan_autentikasi_baru.md +++ /dev/null @@ -1,18 +0,0 @@ -# Laporan Alur Teknis Autentikasi dan Manajemen Sesi Aplikasi JTA - -Alur teknis autentikasi dan manajemen sesi setelah pembaruan sistem dijelaskan sebagai berikut: - -1. **Registrasi Akun dan Pemisahan Klaim Perangkat (Device Claiming)**: - Proses pendaftaran akun kini terpisah dari klaim perangkat. Pengguna terlebih dahulu melakukan registrasi akun menggunakan nama, email, dan kata sandi yang disimpan langsung di layanan autentikasi **Supabase Auth**. Setelah akun terdaftar dan pengguna masuk ke aplikasi, pengguna dapat menghubungkan perangkat IoT (ESP32) secara terpisah di halaman utama dengan memasukkan **Claim Code** unik. Backend REST API kemudian memetakan `device_id` ke `user_id` di database. Hal ini memastikan hanya pemilik sah yang memiliki otorisasi kontrol dan mencegah akses ilegal dari pengguna lain. - -2. **Autentikasi Mandiri dan Cache Sesi Lokal**: - Pengguna melakukan login menggunakan email dan kata sandi yang diverifikasi secara aman oleh Supabase. Setelah autentikasi berhasil, token akses (JWT) dikelola secara otomatis oleh SDK **Supabase Flutter**. Bersamaan dengan itu, sistem mengambil informasi perangkat yang terikat (`device_id`) dari database backend via REST API dan menyimpannya ke penyimpanan lokal perangkat menggunakan **SharedPreferences** sebagai cache (`cached_device_id`). Saat aplikasi dibuka kembali, sistem memeriksa sesi aktif melalui Supabase dan memulihkan `device_id` dari cache secara instan (offline-safe) tanpa memicu delay request API berulang. - -3. **Integrasi Identitas, REST API, dan Notifikasi (OneSignal)**: - Setelah berhasil masuk, aplikasi tidak mengontrol perangkat secara langsung menggunakan protokol MQTT, melainkan melalui **REST API (Dio)** dengan menyertakan token autentikasi dan `device_id`. Sementara itu, protokol MQTT tetap digunakan oleh modul perangkat keras (ESP32) untuk mengirim data ke backend. Dari sisi notifikasi, `User ID` dari Supabase didaftarkan ke layanan **OneSignal** (`OneSignal.login(user.id)`). Integrasi ini menjamin notifikasi push (seperti peringatan suhu/kelembapan kritis dari kumbung) hanya dikirimkan ke perangkat mobile pengguna yang terikat secara sah dengan alat tersebut. - -4. **Manajemen Navigasi Reaktif dan Terminasi Sesi (Logout)**: - Navigasi antarhalaman tidak lagi menggunakan route guarding manual pada setiap transisi rute, melainkan dikendalikan secara reaktif menggunakan manajemen state **Riverpod** (`AuthNotifier`). Sistem akan otomatis mengarahkan rute halaman (Splash Screen, Landing Page, atau Dashboard Utama) berdasarkan status autentikasi aktif. Akhir dari siklus sesi terjadi saat pengguna menekan tombol *Logout*, di mana sistem secara berurutan akan: - - Melakukan pemutusan sesi pada server Supabase (`signOut`). - - Menghapus cache `device_id` dari penyimpanan lokal (SharedPreferences). - - Melakukan logout/de-registrasi akun dari layanan **OneSignal** (`OneSignal.logout()`) guna memastikan tidak ada kebocoran notifikasi di masa mendatang.