Skip to main content
Sesi merchant Shopee dapat dicetak ulang tanpa OTP baru selama sesi akun masih hidup. Halaman ini menjelaskan cara memperbarui sesi dengan benar dan jebakan liveness yang mudah salah.

Memperbarui sesi

refreshSession menanyakan Shopee langsung apakah sesi akun masih hidup (login_status), lalu mencetak ulang token merchant aktif lewat pertukaran SSO yang sama dengan login segar. Bila sesi akun sudah mati, ia melempar AuthError dengan code AUTH_REQUIRED - tidak ada retry diam-diam yang dapat memulihkannya.

Sinyal liveness yang benar

exp pada cookie dashboard Shopee berumur ~1000 hari dan tidak mencerminkan sesi server, jadi jangan memakainya untuk menilai sesi masih hidup. Getter authenticated hanya pemeriksaan struktural (cookie ada dan cocok dengan accountId), bukan bukti sesi server masih valid.
Satu-satunya sinyal liveness yang jujur adalah login_status: selama ia menjawab error:0, token merchant dapat dicetak ulang; setelah menjawab “not login”, akun harus login OTP baru. refreshSession sudah memeriksa ini untuk Anda.

Rotasi token

Token berotasi setiap pembaruan, jadi onSessionUpdated wajib dipasang agar sesi tersimpan tidak menjadi basi:
Sesi lama tanpa materi SSO (switchCredential) akan menolak dengan AUTH_REQUIRED. Sesi seperti itu berasal dari sebelum dukungan renewal atau dari impor cookie mentah, dan hanya login OTP baru yang memulihkannya.

Ekspor sesi

exportSession mengembalikan ShopeeSession dengan snapshot cookie terkini dan expiresAt dari credential. Perlakukan seluruh objek sebagai kredensial: memuat cookie yang dapat memberi akses merchant. ShopeeSession.switchCredential adalah materi akun-sesi yang dapat mencetak token merchant untuk merchant mana pun di akun tanpa OTP kedua - sama sensitifnya dengan cookie.

Getter authenticated

authenticated memeriksa apakah credential cookie ada, belum kedaluwarsa secara struktural, dan accountId-nya cocok dengan sesi. Ini pemeriksaan murah tanpa jaringan; untuk kepastian sesi server, panggil operasi nyata atau refreshSession.

Transisi yang aman

Semua auth, discovery store, dan pergantian store diserialkan: composition pembayaran dinonaktifkan dan antrean write/polling dikuras sebelum cookie/session di-snapshot; target baru diaktifkan hanya setelah onSessionUpdated berhasil. Callback onSessionUpdated tidak boleh memulai transisi provider reentrant (auth/store) - ia harus gagal cepat, bukan deadlock. Lihat Merchant dan store Shopee.

Referensi

Lihat Referensi API ShopeeProvider untuk refreshSession, exportSession, dan getter authenticated.