Pengembangan Skrip / Autentikasi API
Untuk HTTP API yang dihasilkan oleh API Fungsi, autentikasi antarmuka dapat ditambahkan.
Saat ini, autentikasi antarmuka yang didukung adalah sebagai berikut:
| Jenis Autentikasi | Penjelasan |
|---|---|
| Bidang Tetap | Memverifikasi bahwa Header, Query, atau Body pada permintaan berisi bidang dengan nilai tertentu |
| HTTP Basic | Autentikasi HTTP Basic standar (menampilkan kotak login saat diakses melalui browser) |
| HTTP Digest | Autentikasi HTTP Digest standar (menampilkan kotak login saat diakses melalui browser) |
| Fungsi Autentikasi | Menentukan fungsi yang ditulis sendiri sebagai fungsi autentikasi |
Pengguna dapat menambahkan konfigurasi autentikasi di "Manajemen / Autentikasi API", kemudian menentukan konfigurasi autentikasi yang ditambahkan di "Konfigurasi API Fungsi".
Jika memiliki persyaratan keamanan yang tinggi, pastikan untuk mengakses antarmuka melalui HTTPS
1. Autentikasi Bidang Tetap
Autentikasi Bidang Tetap adalah metode autentikasi paling sederhana, yaitu klien dan DataFlux Func sepakat bahwa di suatu tempat pada permintaan (Header, Query, atau Body) harus menyertakan bidang dan nilai bidang tertentu, dan pada setiap pemanggilan, konten ini disertakan untuk menyelesaikan autentikasi.
Misalkan disepakati bahwa pada setiap permintaan, header permintaan harus menyertakan x-auth-token="my-auth-token", maka panggilan dapat dilakukan dengan cara berikut untuk menyelesaikan autentikasi:
| Text Only | |
|---|---|
1 2 | |
Jika beberapa autentikasi Bidang Tetap dikonfigurasikan, satu kecocokan dianggap telah lulus autentikasi
Untuk bidang yang digunakan untuk autentikasi di Query dan Body, setelah autentikasi berhasil, sistem akan otomatis menghapusnya dan tidak meneruskannya ke fungsi
2. HTTP Basic / HTTP Digest
Metode autentikasi yang didukung langsung oleh browser.
Untuk antarmuka yang menggunakan autentikasi dengan cara ini, saat diakses langsung di bilah alamat browser, browser akan menampilkan kotak nama pengguna/kata sandi untuk diisi oleh pengguna.
Jika perlu mengakses secara terprogram, silakan lihat kode berikut:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 | |
3. Fungsi Autentikasi
Jika metode autentikasi antarmuka rumit atau khusus (misalnya perlu berintegrasi dengan sistem bisnis, dll.), Anda dapat memilih untuk menulis fungsi sendiri untuk melakukan autentikasi.
Fungsi yang digunakan untuk autentikasi tidak memerlukan parameter; mengembalikan True menunjukkan autentikasi berhasil, sedangkan mengembalikan konten lain atau melempar kesalahan menunjukkan kegagalan.
Dalam fungsi autentikasi, Anda dapat menggunakan variabel bawaan _DFF_HTTP_REQUEST untuk mendapatkan informasi terkait permintaan: Pengembangan Skrip / Variabel Bawaan / _DFF_HTTP_REQUEST
| Contoh | |
|---|---|
1 2 3 | |
Perlu diperhatikan bahwa ketika autentikasi gagal, format respons antarmuka juga akan berbeda tergantung pada konten yang dikembalikan:
| Contoh | |
|---|---|
1 2 3 | |
Saat autentikasi gagal, jika fungsi langsung mengembalikan False, badan respons antarmuka tidak akan menyertakan Informasi kesalahan: spesifik apa pun.
| Badan Respons Antarmuka | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
| Contoh | |
|---|---|
1 2 3 | |
Saat autentikasi gagal, jika fungsi mengembalikan string, string tersebut akan dikembalikan sebagai bidang detail:
| Badan Respons Antarmuka | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
| Contoh | |
|---|---|
1 2 3 | |
Saat autentikasi gagal, jika fungsi mengembalikan JSON, JSON tersebut akan dikembalikan sebagai bidang detail:
| Badan Respons Antarmuka | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
| Contoh | |
|---|---|
1 2 3 | |
Ketika fungsi autentikasi melempar kesalahan, karena di tingkat kerangka Func tidak dapat mengetahui apakah Exception ini berasal dari logika bisnis atau kesalahan pada kode itu sendiri, maka akan mengembalikan informasi kesalahan umum sebagai bidang detail:
| Badan Respons Antarmuka | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |