Panduan Integrasi Resmi Untuk Situs dan Aplikasi Web

Integrasikan library JavaScript fio.js dan Widget FACEIO ke situs atau aplikasi web Anda. Gunakan enroll() untuk mendaftarkan pengguna baru dan authenticate() agar pengguna yang sudah terdaftar dapat login kembali dengan autentikasi wajah.

quick-start.js
JavaScript
// 1. Tambahkan ke HTML sebelum </body>
<div id="faceio-modal"></div>
<script src="https://cdn.faceio.net/fio.js"></script>

// 2. Buat instance dengan Public ID Anda
const faceio = new faceIO("app-public-id");

// 3. Daftarkan pengguna baru
faceio.enroll({ "locale": "auto",
         "payload": { "email": "user@example.com" }
}).then(userInfo => {
  console.log(`Terdaftar: ${userInfo.facialId}`);
}).catch(err => handleError(err));

// 4. Autentikasi pengguna yang sudah terdaftar
faceio.authenticate({ "locale": "auto" })
.then(userData => {
  console.log("Payload:", JSON.stringify(userData.payload));
}).catch(err => handleError(err));

Apa itu FACEIO?

FACEIO adalah platform autentikasi wajah dari PixLab ↗ yang memungkinkan aplikasi web mendaftarkan dan mengautentikasi pengguna melalui wajah tanpa kata sandi, OTP, atau sensor biometrik khusus dalam alur FACEIO. Layanan ini menggunakan webcam standar atau kamera ponsel pada browser modern yang didukung.

Library sisi kliennya adalah fio.js. Library ini menyediakan dua metode utama: enroll() untuk pendaftaran dan authenticate() untuk login, serta utilitas restartSession() untuk alur multioperasi. FACEIO mengoordinasikan alur autentikasi, sedangkan mesin pengenalan wajah yang dipilih pemilik aplikasi melakukan pencocokan wajah dan mengelola hash biometrik. Aplikasi Anda menerima Promise yang berhasil diselesaikan berisi Facial ID serta payload yang dikaitkan saat pendaftaran.

Baru menggunakan FACEIO?

Mulai dengan Panduan Penyiapan 5 Menit untuk membuat aplikasi pertama dan memperoleh Public ID dari FACEIO Console ↗.


Integrasi Library fio.js

fio.js berfungsi pada browser modern yang didukung menggunakan webcam standar atau kamera ponsel, tanpa memerlukan sensor biometrik khusus. Library JavaScript ini tidak bergantung pada framework dan dapat digunakan dengan React, Vue, Angular, Next.js, atau JavaScript biasa.

1 Impor fio.js ke Situs Web Anda

Tempelkan cuplikan berikut sebelum tag penutup </body> pada halaman yang memerlukan autentikasi wajah. Library dimuat dari CDN ↗ FACEIO. Self-hosting tidak didukung agar integrasi menerima pembaruan fio.js yang didukung melalui CDN FACEIO.

index.html
HTML
<div id="faceio-modal"></div>
<script src="https://cdn.faceio.net/fio.js"></script>

2 Buat instance faceIO

Buat instance faceIO() dengan Public ID aplikasi Anda. ID ini tersedia di Application Manager pada FACEIO Console ↗.

app.js
JavaScript
<script type="text/javascript">
  /* Buat instance fio.js dengan Public ID */
  const faceio = new faceIO("app-public-id");
</script>

Sebelum melanjutkan, pastikan Anda telah:

3 Jalankan Widget

Setelah fio.js dimuat dan instance faceIO() siap, mulai proses pengenalan wajah dengan memanggil salah satu metode yang disediakan oleh class:

enroll()

Mendaftarkan pengguna baru melalui pengenalan wajah. Ini setara dengan proses pendaftaran tradisional tanpa kata sandi.

authenticate()

Mengautentikasi pengguna yang sudah terdaftar. Ini setara dengan login tradisional tanpa kata sandi.

app.js
JavaScript
<button onclick="enrollNewUser()">Daftarkan Pengguna Baru</button>
<button onclick="authenticateUser()">Autentikasi Pengguna</button>

<script type="text/javascript">
  const faceio = new faceIO("app-public-id");

  function enrollNewUser() {
    // faceio.enroll() memulai alur pendaftaran
  }

  function authenticateUser() {
    // faceio.authenticate() memulai alur autentikasi
  }

  function handleError(errCode) {
    // Tangani error di sini
  }
</script>

Templat Referensi

Templat HTML menyediakan implementasi referensi untuk kedua metode beserta penanganan error yang lengkap.


enroll() - Daftarkan Pengguna Baru

Menjalankan Widget FACEIO untuk mendaftarkan pengguna baru melalui pengenalan wajah. Ini setara dengan pendaftaran tradisional tanpa kata sandi. Jika berhasil, metode ini mengembalikan Promise berisi object userInfo yang memuat Facial ID unik pengguna, timestamp pendaftaran, serta estimasi demografis gender dan usia.

Sintaks

Deklarasi
promise = faceio.enroll({ parameters })
Alias
enrol() register() record()
Nilai Kembali
Sebuah Promise yang diselesaikan dengan objek userInfo jika berhasil, atau ditolak dengan fioErrCode jika gagal.

Deskripsi

Perilaku

Saat dipanggil, Widget FACEIO meminta persetujuan pengguna bila diperlukan, meminta akses kamera, lalu mengirim tangkapan ke mesin pengenalan wajah yang dipilih pemilik aplikasi.

FACEIO tidak menyimpan, menangani, atau mengakses hash biometrik. Mesin pengenalan wajah yang dipilih membuat dan mengelola hash biometrik untuk pencocokan, sedangkan integrasi Anda menerima Facial ID yang dihasilkan dan data pendaftaran.

PIN
Saat pendaftaran, pengguna menetapkan PIN Code 4 sampai 16 digit. PIN Code dapat diminta pada autentikasi berikutnya jika terjadi kemiripan wajah, tingkat keyakinan sedikit di bawah 99%, atau situs web maupun aplikasi web Anda mewajibkan konfirmasi PIN Code.
Payload
payload mengaitkan data arbitrer (email, userId, nama, dan sebagainya) dengan pengguna terdaftar. Data ini dikembalikan pada setiap autentikasi yang berhasil untuk pengguna tersebut. Ukuran maksimum 16 KB. Gunakan Base64 untuk konten biner atau non-ASCII.
Webhook
Jika Anda telah mengonfigurasi Webhook, FACEIO akan mengirim data pendaftaran melalui POST ke endpoint Anda untuk sinkronisasi backend secara real time.

Parameter

Menerima satu object opsional. Semua propertinya bersifat opsional:

Properti Tipe Nilai default Deskripsi
payload JSON null Data arbitrer yang dikaitkan dengan pengguna dan dikembalikan pada autentikasi berikutnya. Maksimum 16 KB. Gunakan Base64 untuk data non-ASCII.
permissionTimeout Number 27 sec Waktu tunggu izin kamera dalam detik. Dihentikan dengan fioErrCode.PERMISSION_REFUSED saat waktu habis.
termsTimeout Number 10 min Waktu tunggu penerimaan Ketentuan Layanan dalam menit. Dihentikan dengan fioErrCode.TERMS_NOT_ACCEPTED saat waktu habis.
idleTimeout Number 27 sec Waktu tunggu dalam detik jika wajah tidak terdeteksi. Dihentikan dengan fioErrCode.NO_FACES_DETECTED saat waktu habis.
replyTimeout Number 40 sec Waktu tunggu respons server dalam detik. Dihentikan dengan fioErrCode.TIMEOUT saat waktu habis.
enrollIntroTimeout Number 12 sec Durasi tampilan layar pengantar dan petunjuk pendaftaran dalam detik.
locale String auto Bahasa Widget. auto mendeteksi bahasa browser. Anda juga dapat memberikan kode BCP 47 (en, ar, es, ja, de). Jika tidak didukung, digunakan en-US.
userConsent Boolean false Atur ke true jika persetujuan pengguna sudah diperoleh, misalnya saat pembuatan akun. Opsi ini melewati layar persetujuan Ketentuan Layanan. Anda bertanggung jawab untuk meminta persetujuan secara jelas sebelum mendaftarkan pengguna baru. Lihat panduan praktik terbaik privasi.
showAbortBtn Boolean false Atur ke true untuk selalu menampilkan tombol tutup atau batal. Jika pengguna mengekliknya, error fioErrCode.ABORTED_BY_USER akan muncul.

Nilai Kembali

userInfo

Sebuah Promise yang diselesaikan dengan objek userInfo jika berhasil, atau ditolak dengan kode error jika gagal:

Properti Type Deskripsi
facialId String (UUID) Identifier unik yang ditetapkan mesin pengenalan wajah. Lihat Facial ID.
timestamp String ISO 8601 ↗ timestamp penyelesaian pendaftaran.
details Object Berisi estimasi gender dan age untuk pengguna yang didaftarkan.

Contoh

Penggunaan
app.js
JavaScript
// Buat instance fio.js dengan Public ID aplikasi Anda
const faceio = new faceIO("app-public-id");
function enrollNewUser(){
faceio.enroll({
  "locale": "auto", // Bahasa default pengguna
  "payload": {
      /* Payload yang akan dikaitkan dengan pengguna ini dan dikembalikan pada autentikasi berikutnya. */
      "whoami": 123456, // ID contoh yang dikaitkan dengan pengguna ini
      "email": "john.doe@example.com"
      }
  }).then(userInfo => {
      // Pengguna berhasil didaftarkan 
      alert(
          `Pengguna berhasil didaftarkan. Detail:
           Facial ID unik: ${userInfo.facialId}
           Tanggal pendaftaran: ${userInfo.timestamp}
           Estimasi gender: ${userInfo.details.gender}
           Perkiraan usia: ${userInfo.details.age}`
      );
     console.log(userInfo);
     // Tangani hasil, simpan Facial ID, lalu arahkan ke dasbor
  }).catch(errCode => {
     // Catat error yang terjadi selama pendaftaran
     handleError(errCode);
  })
}
Catatan
  • Simpan facialId yang dikembalikan di database sebagai kunci autentikasi unik pengguna.
  • payload dikembalikan tanpa perubahan pada setiap pemanggilan authenticate() berikutnya untuk pengguna ini.
  • Lihat Template HTML untuk melihat referensi lengkap yang berfungsi.

authenticate() - Autentikasi Pengguna

Menjalankan Widget FACEIO untuk memverifikasi pengguna yang sudah terdaftar. Ini setara dengan login tradisional tanpa kata sandi. Jika berhasil, metode ini mengembalikan Promise berisi object userData yang memuat Facial ID pengguna, timestamp autentikasi, dan payload yang dikaitkan saat pendaftaran.

Sintaks

Deklarasi
promise = faceio.authenticate({ parameters })
Alias
auth() recognize() identify()
Nilai Kembali
Sebuah Promise yang diselesaikan dengan objek userData jika berhasil, atau ditolak dengan fioErrCode jika gagal.

Deskripsi

Perilaku

Saat dipanggil, Widget FACEIO meminta akses kamera dan membandingkan tangkapan dengan indeks wajah terdaftar milik aplikasi Anda. Durasi bergantung pada izin kamera, kualitas gambar, pemeriksaan liveness, kondisi jaringan, dan konfigurasi alur.

Pencocokan wajah dilakukan oleh mesin pengenalan wajah yang dipilih. FACEIO tidak menyimpan, menangani, atau mengakses hash biometrik. Integrasi sisi klien Anda bekerja dengan hasil autentikasi yang dikembalikan.

PIN
Permintaan PIN Code dapat muncul jika terdeteksi kemiripan wajah, tingkat keyakinan sedikit di bawah 99%, atau situs web maupun aplikasi web Anda mewajibkan konfirmasi PIN Code melalui opsi keamanan di FACEIO Console.
Payload
payload yang dikaitkan saat enroll() akan dikembalikan tanpa perubahan di dalam objek userData yang diselesaikan. Validasi facialId yang dikembalikan dan terapkan aturan otorisasi sisi server Anda sebelum membuat sesi situs web atau aplikasi web.
Webhook
Jika Webhook dikonfigurasi, FACEIO mengirim data peristiwa autentikasi melalui POST ke endpoint Anda setelah autentikasi berhasil.

Parameter

Menerima satu object opsional. Semua propertinya bersifat opsional:

Properti Tipe Nilai default Deskripsi
permissionTimeout Number 27 sec Waktu tunggu izin kamera dalam detik. Dihentikan dengan fioErrCode.PERMISSION_REFUSED saat waktu habis.
idleTimeout Number 27 sec Waktu tunggu dalam detik jika wajah tidak terdeteksi. Dihentikan dengan fioErrCode.NO_FACES_DETECTED saat waktu habis.
replyTimeout Number 40 sec Waktu tunggu respons server dalam detik. Dihentikan dengan fioErrCode.TIMEOUT saat waktu habis.
locale String auto Bahasa Widget. auto mendeteksi bahasa browser. Anda juga dapat memberikan kode BCP 47 (en, ar, es, ja, de). Jika tidak didukung, digunakan en-US.

Nilai Kembali

userData

Sebuah Promise yang diselesaikan dengan objek userData jika berhasil, atau ditolak dengan kode error jika gagal:

Properti Type Deskripsi
facialId String (UUID) Identifier unik yang ditetapkan saat pendaftaran. Lihat dokumentasi Facial ID.
payload Any Data arbitrer yang dikaitkan dengan pengguna saat pendaftaran, seperti email atau userId.

Contoh

Penggunaan
app.js
JavaScript
const faceio = new faceIO("app-public-id"); // Inisialisasi dengan Public ID aplikasi Anda
function authenticateUser(){
  faceio.authenticate({
      "locale": "auto" // Bahasa default pengguna
  }).then(userData => {
      console.log("Berhasil, pengguna teridentifikasi")
      // Ambil Facial ID pengguna. Nilainya akan tetap sama
      // pada setiap autentikasi berikutnya yang berhasil. FACEIO menyarankan 
      // penggunaan Facial ID ini untuk mengidentifikasi secara unik 
      // seluruh pengguna terdaftar di backend Anda.
      console.log("Facial ID terkait: " + userData.facialId)
      // Ambil data arbitrer yang sebelumnya dikaitkan dengan pengguna
      // melalui parameter payload pada enroll() saat pendaftaran.
      console.log("Payload: " + JSON.stringify(userData.payload)) // Data dari contoh enroll() di atas
  }).catch(errCode => {
      handleError(errCode)
  })
}
Catatan
  • Bandingkan facialId yang dikembalikan dengan database sebelum mengotorisasi sesi.
  • Data payload pendaftaran, seperti email atau userId, tersedia di userData.payload. Tetap validasi sesi di backend Anda.
  • Lihat Template HTML untuk melihat referensi lengkap.

restartSession() - Mulai Ulang Sesi

Mereset sesi FACEIO saat ini agar pemanggilan baru ke enroll() atau authenticate() dapat dilakukan pada halaman yang sama tanpa memuat ulang seluruh halaman. Berguna untuk terminal bersama, meja check-in, atau alur lain ketika beberapa orang menggunakan sesi browser yang sama secara berurutan.

Sintaks

Deklarasi
boolean = faceio.restartSession()
Parameter
Tidak ada. Metode ini tidak menerima argumen.
Nilai Kembali
true ketika sesi berhasil direset dan siap untuk operasi baru; jika tidak, false.

Deskripsi

Perilaku

Setelah enroll() atau authenticate() diselesaikan atau ditolak, sesi internal FACEIO ditandai telah digunakan. Pemanggilan berikutnya pada instance faceIO yang sama tanpa reset akan langsung ditolak dengan fioErrCode.SESSION_IN_PROGRESS.

Memanggil restartSession() menghapus status ini sehingga instance siap untuk operasi pengenalan berikutnya.

Kasus Penggunaan
  • Kios atau terminal bersama - Memungkinkan beberapa pengguna melakukan autentikasi berurutan pada perangkat yang sama tanpa memuat ulang halaman.
  • Alur daftar lalu autentikasi - Daftarkan pengguna, reset sesi, lalu autentikasi pada halaman yang sama.
  • Coba lagi setelah error - Reset setelah operasi gagal agar pengguna dapat mencoba lagi tanpa memuat ulang halaman.
Cakupan
Reset hanya berlaku untuk satu instance faceIO. Jika Anda membuat beberapa instance faceIO (tidak disarankan), masing-masing memiliki status sesi sendiri.
Fitur Premium

Pembuatan sesi dinamis hanya tersedia pada paket Premium. Tingkatkan paket aplikasi melalui FACEIO Console ↗ untuk menggunakan fitur ini.

Nilai Kembali

Berhasil
true - Sesi berhasil direset dan instance siap untuk pemanggilan enroll() atau authenticate().
Gagal
false ketika sesi baru tidak dapat dibuat.

Kode Error - fioErrCode

Ketika enroll() atau authenticate() gagal, Promise ditolak dengan nilai numerik fioErrCode. Tangani error dengan memeriksa nilai ini di dalam handler .catch(). Untuk restartSession(), periksa nilai boolean yang dikembalikan (true atau false).

Kode Konstanta Deskripsi
1 fioErrCode.PERMISSION_REFUSED Pengguna menolak akses kamera. Minta pengguna mengizinkannya melalui pengaturan browser.
2 fioErrCode.NO_FACES_DETECTED Tidak ada wajah yang terdeteksi sebelum waktu habis. Minta pengguna memperbaiki posisi lalu mencoba lagi.
3 fioErrCode.UNRECOGNIZED_FACE Wajah yang dipindai tidak cocok dengan pengguna terdaftar di aplikasi. Hanya terjadi saat autentikasi.
4 fioErrCode.MANY_FACES Beberapa wajah terdeteksi bersamaan. Pastikan hanya satu wajah berada dalam bingkai.
5 fioErrCode.FACE_DUPLICATION Pengguna mencoba mendaftar kembali, tetapi wajahnya sudah terdaftar. Ini terjadi ketika opsi "Prevent Same User from Enrolling Twice" diaktifkan di FACEIO Console ↗. Pendaftaran dihentikan; arahkan pengguna ke alur autentikasi.
6 fioErrCode.MINORS_NOT_ALLOWED Pendaftaran ditolak oleh kebijakan usia minimum yang dikonfigurasi. Tampilkan pesan yang sesuai dan ikuti kebijakan akses pemilik aplikasi.
7 fioErrCode.PAD_ATTACK Terdeteksi dugaan presentation attack, seperti foto, pemutaran video, atau masker sebagai pengganti wajah langsung. Perlakukan sebagai sinyal keamanan dan terapkan kebijakan percobaan ulang atau peninjauan. Tidak ada sistem anti-spoofing yang mendeteksi setiap upaya. Pelajari deteksi liveness ↗.
8 fioErrCode.FACE_MISMATCH Vektor wajah yang diambil saat pendaftaran tidak cocok satu sama lain. Hanya muncul pada enroll(). Minta pengguna mengulangi pendaftaran.
9 fioErrCode.NETWORK_IO Terjadi error jaringan. Periksa koneksi lalu coba lagi.
10 fioErrCode.WRONG_PIN_CODE PIN Code yang dimasukkan saat autentikasi salah. Hanya muncul pada authenticate(). Operasi dihentikan setelah tiga percobaan gagal. Izinkan pengguna memulai ulang autentikasi.
11 fioErrCode.PROCESSING_ERR Terjadi error internal server. Kondisi ini mungkin sementara; coba lagi setelah beberapa saat.
12 fioErrCode.UNAUTHORIZED Public ID tidak valid atau aplikasi belum diaktifkan di FACEIO Console.
13 fioErrCode.TERMS_NOT_ACCEPTED Pengguna tidak menyetujui Ketentuan Layanan dalam waktu yang ditetapkan oleh termsTimeout. Hanya terjadi saat pendaftaran.
14 fioErrCode.UI_NOT_READY Widget FACEIO belum selesai diinisialisasi. Tunggu hingga DOM selesai dimuat sebelum memanggil metode.
15 fioErrCode.UNIQUE_PIN_REQUIRED PIN Code harus unik untuk setiap pengguna ketika pemeriksaan keunikan diaktifkan.
16 fioErrCode.TIMEOUT Server tidak merespons dalam waktu yang ditetapkan oleh replyTimeout. Periksa koneksi lalu coba lagi.
17 fioErrCode.TOO_MANY_REQUESTS Batas permintaan terlampaui. Terapkan exponential backoff sebelum mencoba lagi.
18 fioErrCode.EMPTY_ORIGIN Header origin pada permintaan tidak ada. Pastikan fio.js disajikan dari domain yang valid.
19 fioErrCode.FORBIDDEN_ORIGIN Origin permintaan tidak tercantum dalam daftar yang diizinkan. Tambahkan domain di opsi keamanan FACEIO Console.
20 fioErrCode.FORBIDDEN_COUNTRY Negara pengguna diblokir oleh pembatasan geografis aplikasi yang dikonfigurasi di FACEIO Console.
21 fioErrCode.SESSION_IN_PROGRESS Pendaftaran atau autentikasi lain sedang berjalan. Hal ini dapat terjadi jika enroll() atau authenticate() dipanggil beberapa kali, misalnya karena klik ganda. Gunakan restartSession() untuk memulai sesi baru tanpa memuat ulang halaman. Jika Widget masih berjalan, tangani status ini tanpa memulai operasi lain.
22 fioErrCode.ABORTED_BY_USER Pengguna mengeklik tombol batal atau tutup, yang hanya tersedia ketika showAbortBtn: true.

Praktik Terbaik Penanganan Error

Selalu tangani error dengan pesan yang jelas bagi pengguna. Gunakan pernyataan switch atau rangkaian if-else untuk menangani setiap kode dan mengarahkan pengguna, misalnya menawarkan pendaftaran ketika fioErrCode.UNRECOGNIZED_FACE dikembalikan.


Template HTML

Implementasi referensi dengan enroll() dan authenticate() dan penanganan error. Gunakan sebagai titik awal integrasi Anda.

Penting

Ganti app-public-id dengan Public ID aplikasi yang sebenarnya dari FACEIO Console ↗.

Template Referensi

Catatan Implementasi

  • enroll() pada baris 31 menyertakan payload dengan data pengguna contoh. Sesuaikan dengan kebutuhan situs web atau aplikasi web Anda.
  • Simpan facialId di database dan kaitkan dengan akun pengguna untuk autentikasi berikutnya.
  • Handler error pada baris 60 mencakup kode error umum. Sesuaikan pesannya dengan situs web atau aplikasi web Anda.
  • Template ini memerlukan server HTTP yang aktif. fio.js tidak dapat dimuat langsung dari sistem file lokal karena pembatasan keamanan browser.
  • Tinjau panduan praktik terbaik keamanan dan panduan praktik terbaik privasi sebelum melakukan deployment ke produksi.

Tutorial Komunitas

Gunakan panduan komunitas ini untuk mengimplementasikan fio.js dengan React, Vue, Angular, Next.js, atau JavaScript biasa serta meninjau contoh proyek React Native dan Flutter.

Paket NPM Resmi

Paket resmi untuk build tool JavaScript dan proyek berbasis framework.

Lihat di NPM
Forum Komunitas

Temukan jawaban, bagikan pengalaman, dan berdiskusi dengan pengembang FACEIO lainnya.

Buka Forum
Autentikasi Tanpa Kata Sandi yang Mengutamakan Privasi

Panduan login tanpa kata sandi, verifikasi usia, dan deteksi liveness dalam satu solusi.

Lihat Tutorial
Sistem Kehadiran Wajah (Vanilla JS)

Buat alur kehadiran dengan FACEIO dan JavaScript biasa tanpa framework.

Lihat Tutorial
Chatbot AI dengan Autentikasi Wajah (Next.js)

Buat chatbot perencana perjalanan dengan autentikasi wajah menggunakan Next.js.

Lihat Tutorial
Pengenalan Wajah dengan React dan Tailwind

Tambahkan pengenalan wajah ke aplikasi React dan Tailwind CSS.

Lihat Tutorial
Pengenalan Wajah di Vue.js

Tutorial implementasi autentikasi wajah FACEIO pada aplikasi Vue.js.

Lihat Tutorial
Autentikasi Pengguna di React (freeCodeCamp)

Panduan freeCodeCamp untuk menambahkan autentikasi pengenalan wajah ke aplikasi React.

Lihat Tutorial
Pola Autentikasi Web Modern

Pelajari pola autentikasi modern untuk aplikasi web dengan pengenalan wajah.

Lihat Tutorial
Panduan Lengkap FACEIO

Panduan mendalam tentang implementasi FACEIO dan praktik terbaik.

Lihat Tutorial
Login Pengenalan Wajah (Vanilla JS)

Buat alur login pengenalan wajah dengan JavaScript biasa tanpa framework.

Lihat Tutorial
Pelacakan Kehadiran dengan FACEIO

Buat sistem pemantauan kehadiran dengan pengenalan wajah FACEIO.

Lihat Tutorial
Punya Tutorial untuk Dibagikan?

Bagikan tutorial implementasi FACEIO kepada komunitas pengembang.

Hubungi Kami

Integrasikan FACEIO dalam 5 Menit

Buat aplikasi FACEIO, salin Public ID, muat fio.js, lalu hubungkan enroll() dan authenticate() ke kontrol pendaftaran dan login pada situs web atau aplikasi web Anda.

Tanpa Kartu Kredit
Integrasi 5 Menit
Tidak Bergantung pada Framework