Appearance
Troubleshooting & Pengujian (Testing & Debugging)
Halaman ini berisi petunjuk cara melakukan pengujian integrasi postMessage di lingkungan lokal/staging serta matriks penanganan masalah umum (common error resolution).
1. Pengujian Manual melalui Console Peramban
Pengujian fungsi event listener pada sub-aplikasi dapat dilakukan secara mandiri di lingkungan lokal tanpa bergantung pada ketersediaan Parent Portal:
- Membuka sub-aplikasi pada peramban (contoh:
http://localhost:3000). - Membuka Developer Tools (F12) -> pilih tab Console.
- Eksekusi skrip pengujian simulasi
postMessageberikut:
js
// Simulasi pengiriman event autentikasi dari Parent Window
window.postMessage({
type: 'SUPERAPPS_AUTH_SUCCESS',
payload: {
authCode: 'test_code_123456',
accessToken: 'test_access_token_mock',
user: {
id: 'test-01',
email: 'testing.dev@bpbatam.go.id',
name: 'Penguji Lokal'
}
}
}, window.location.origin);- Periksa log konsol sub-aplikasi: Apabila pesan verifikasi muncul dan token tersimpan pada
LocalStorage, maka pendaftaran event listener dinyatakan berhasil dan valid.
2. Matriks Penanganan Masalah Umum (Common Errors Matrix)
| Gejala Masalah | Kemungkinan Penyebab | Solusi & Penanganan |
|---|---|---|
Pesan postMessage tidak diterima sub-aplikasi | Event listener didaftarkan setelah pengiriman pesan berlangsung. | Daftarkan window.addEventListener('message') pada komponen paling awal (root/layout) saat aplikasi dimuat. |
Blocked a frame with origin... | Sub-aplikasi mencoba mengakses DOM parent secara langsung tanpa postMessage. | Gunakan window.parent.postMessage(), dilarang mengakses window.parent.document secara langsung. |
| Sesi login terhapus saat iframe dimuat ulang | Sub-aplikasi bergantung pada 3rd party cookie yang diblokir peramban. | Simpan token pada LocalStorage dan sertakan melalui Header Authorization: Bearer <token>. |
event.origin bernilai "null" | Aplikasi diakses dari file lokal (file://) atau atribut sandbox kurang. | Pastikan sandbox menyertakan allow-same-origin dan aplikasi dijalankan melalui web server (http/https). |
| Error 401 Unauthorized dari Goauthentik | Kode otorisasi kedaluwarsa (> 60 detik) atau telah digunakan sebelumnya. | Setelah menerima kode otorisasi dari postMessage, segera lakukan verifikasi ke Goauthentik via backend. |
3. Kontak Bantuan & Dukungan Teknis
Apabila ditemukan kendala teknis dalam proses integrasi:
- Tim Pusat Data & SI BP Batam:
pusdatin@bpbatam.go.id - Repositori Resmi: https://github.com/bpbatam/superapps-integration-docs