Apidog memungkinkan Anda melindungi dokumentasi API yang dipublikasikan dengan autentikasi kustom. Panduan ini menjelaskan cara mengonfigurasi halaman login kustom yang terintegrasi dengan sistem autentikasi Anda yang sudah ada menggunakan JWT (JSON Web Token).
Buka pengaturan visibilitas situs dokumentasi, pilih Halaman Login Kustom, lalu isi dua bidang berikut:
JWT Secret: Digunakan untuk memverifikasi tanda tangan token. Nilainya harus sama dengan secret yang digunakan backend Anda saat menerbitkan JWT. Anda perlu membuat secret ini sendiri.
URL Login: Saat pengguna mengakses situs dokumentasi online, mereka akan dialihkan ke URL ini. Anda harus menghosting halaman login di alamat ini dan mengimplementasikan autentikasi serta pembuatan token pada backend Anda.
Halaman login ini tidak disediakan oleh Apidog — Anda perlu membangun dan menghostingnya sendiri.
JWT (JSON Web Token) adalah standar terbuka untuk autentikasi pengguna. Sistem login Anda harus mengikuti alur berikut:
1.
Pengguna mengunjungi situs dokumentasi online yang dipublikasikan oleh Apidog (misalnya, https://xxxxx.apidog.io);
2.
Sistem secara otomatis mengalihkan pengguna ke halaman login yang telah Anda konfigurasi (misalnya, http://localhost:3000);
3.
Pengguna memasukkan kredensial mereka dan mengirimkan formulir;
4.
Backend Anda memverifikasi kredensial pengguna;
5.
Setelah autentikasi berhasil, backend Anda membuat JWT yang ditandatangani menggunakan secret yang telah Anda konfigurasi (misalnya, pJRdFC3amihQdWbHvUXNZG9WzYdEGHao);
6.
Kemudian, alihkan pengguna kembali ke situs dokumentasi (misalnya, https://xxxxx.apidog.io) dan sertakan token sebagai parameter kueri bernama auth_token seperti yang ditunjukkan di bawah ini.
7.
Apidog akan secara otomatis memvalidasi token. Jika berhasil, pengguna dapat mengakses konten dokumentasi.
Alur login diilustrasikan dalam diagram di bawah ini:
Stack teknologi apa yang dapat saya gunakan untuk halaman login?
Tidak ada batasan. Selama backend Anda dapat menangani permintaan login POST dan mengembalikan URL yang berisi auth_token, semuanya akan berfungsi. Node.js, PHP, Python, Go, dan sebagainya, semuanya didukung.