Refresh Access (Perpanjang Akses)
Secara garis besar, ada 3 tahap yang perlu ditangani terkait kondisi akses:
- Ketika Access Token tidak valid (IVACC), maka lakukan refresh.
- Retry request yang gagal.
- Ketika Refresh Token tidak valid (IVREF), maka user harus login ulang.
Jika menggunakan Client SDK, poin 1 dan 2 sudah otomatis ditangani, sehingga tinggal perlu menangani poin 3 saja.
Penanganan secara mandiri
graph TD
ns([Mulai])
ne([Selesai])
n1[User mengunjungi app]
n2{User terlogin?}
n3[Terjadi request apapun]
n4{Dapat jawaban<br>HTTP 401 dan<br>error code IVACC?}
n5["Lakukan refresh access (1)"]
n6{Refresh access berhasil?}
n7[User berbekal token-token<br>Access & Refresh baru]
n8[Lakukan retry request yang gagal tadi<br>bila memungkinkan]
n9[User harus login ulang]
ns-->n1-->n2
n2-- Ya -->n3-->n4
n2-- Tidak -->ne
n4-- Ya -->n5-->n6
n4-- Tidak -->ne
n6-- Ya -->n7-->n8-->n4
n6-- Tidak -->n9-->ne
(1) Server endpoint: PATCH /auth
Menggunakan Client SDK
graph TD
ns([Mulai])
ne([Selesai])
n1[User mengunjungi app]
n2{User terlogin?}
n3[Terjadi request apapun]
n4{Refresh Token<br>tidak valid?}
n5{"User harus login ulang#59;<br>Ada fungsi eventCallback?"}
n6["Panggil eventCallback (1)"]
ns-->n1-->n2
n2-- Ya -->n3-->n4
n2-- Tidak -->ne
n4-- Ya -->n5
n4-- Tidak -->ne
n5-- Ya -->n6-->ne
n5-- Tidak -->ne
(1) Client SDK: EventCallback.invalid_refresh_token