Skip to content

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:

  1. Membuka sub-aplikasi pada peramban (contoh: http://localhost:3000).
  2. Membuka Developer Tools (F12) -> pilih tab Console.
  3. Eksekusi skrip pengujian simulasi postMessage berikut:
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);
  1. 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 MasalahKemungkinan PenyebabSolusi & Penanganan
Pesan postMessage tidak diterima sub-aplikasiEvent 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 ulangSub-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 GoauthentikKode 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:

Dokumentasi Resmi Integrasi SSO & Iframe SuperApps BP Batam