Cara Integrasi Face Recognition API di Node.js dan Express: Panduan Praktis untuk Tim Bank-digital
Di era bank digital yang serba cepat, kecepatan dan keamanan verifikasi identitas adalah kunci. Mengintegrasikan teknologi biometrik seperti pengenalan wajah menjadi esensial untuk memenuhi regulasi e-KYC dan memberikan pengalaman pengguna yang mulus. Artikel ini akan memandu Anda tentang cara integrasi face recognition API di Node.js dan Express untuk menciptakan sistem autentikasi biometrik yang kuat, memenuhi standar e-KYC, dan mencegah penipuan.
Dengan ARSA Face Recognition & Liveness API, tim developer Node.js dapat meluncurkan fitur login wajah dalam hitungan hari, bukan bulan, tanpa perlu investasi infrastruktur besar atau tim DevOps khusus.
Mengapa Face Recognition Penting untuk Bank Digital?
Sektor perbankan digital di Indonesia menghadapi tantangan unik: kebutuhan untuk memverifikasi identitas pelanggan secara remote dengan cepat, namun tetap aman dan patuh terhadap regulasi. Undang-Undang Perlindungan Data Pribadi (UU PDP) No. 27/2022, serta Peraturan Otoritas Jasa Keuangan (POJK) 8/2023 dan POJK 21/2023 tentang penerapan e-KYC, menuntut solusi yang tidak hanya akurat tetapi juga menjaga privasi data.
Pengenalan wajah menawarkan solusi yang efisien untuk:
- Onboarding Digital: Mempercepat proses pendaftaran akun baru dengan verifikasi identitas 1:1 antara wajah pengguna dan dokumen identitas.
- Autentikasi Login: Mengganti atau melengkapi password dengan biometrik wajah untuk login yang lebih aman dan nyaman.
- Pencegahan Fraud: Mendeteksi upaya penipuan identitas menggunakan foto, video, atau topeng melalui fitur liveness detection.
Memulai dengan ARSA Face Recognition & Liveness API
ARSA Face Recognition & Liveness API adalah platform cloud SaaS yang dirancang untuk integrasi cepat dan mudah. Anda bisa membuat akun gratis dan melakukan panggilan API pertama dalam waktu sekitar 5 menit.
1. Persiapan Lingkungan Node.js dan Express
Pastikan Anda memiliki Node.js dan Express.js terinstal. Buat proyek Express baru dan instal pustaka yang diperlukan:
“`bash
mkdir face-recognition-app
cd face-recognition-app
npm init -y
npm install express axios multer dotenv
“`
- `express`: Kerangka kerja web untuk Node.js.
- `axios`: Klien HTTP berbasis Promise untuk membuat permintaan ke API eksternal.
- `multer`: Middleware untuk menangani `multipart/form-data`, yang terutama digunakan untuk mengunggah file (gambar/video).
- `dotenv`: Untuk mengelola variabel lingkungan (API Key).
Buat file `.env` di root proyek Anda dan tambahkan API Key ARSA Anda:
“`
ARSA_API_KEY=YOUR_ARSA_API_KEY_HERE
“`
Anda bisa mendapatkan `YOUR_ARSA_API_KEY_HERE` setelah membuat akun gratis Face API di platform ARSA.
2. Konfigurasi Middleware untuk Liveness Check Express
Liveness detection adalah komponen krusial untuk mencegah serangan presentasi (presentation attack) seperti penggunaan foto atau video. Penting untuk membedakan antara *presentation-attack detection (PAD)* yang dicakup oleh standar seperti ISO/IEC 30107-3, dan serangan yang lebih canggih seperti *injection attack* atau *deepfake* yang melewati kamera dan tidak dicakup oleh sertifikasi PAD. Liveness detection memang perlu, namun di tahun 2026, ia tidak lagi cukup berdiri sendiri untuk perlindungan penuh. Untuk pemahaman lebih lanjut, baca artikel kami tentang Perbedaan Presentation Attack dan Injection Attack pada Face Verification.
ARSA API menyediakan deteksi liveness aktif (dengan tantangan gerakan kepala) dan pasif. Anda dapat membuat middleware Express untuk memvalidasi liveness sebelum melakukan verifikasi wajah.
“`javascript
// app.js
require(‘dotenv’).config();
const express = require(‘express’);
const axios = require(‘axios’);
const multer = require(‘multer’);
const app = express();
const port = 3000;
const upload = multer({ storage: multer.memoryStorage() });
app.use(express.json());
const ARSA_API_BASE_URL = ‘https://faceapi.arsa.technology/api/v1’;
const ARSA_API_KEY = process.env.ARSA_API_KEY;
// Middleware untuk liveness check
async function checkLiveness(req, res, next) {
if (!req.file) {
return res.status(400).json({ message: ‘No image file uploaded for liveness check.’ });
}
try {
const response = await axios.post(`${ARSA_API_BASE_URL}/liveness`, req.file.buffer, {
headers: {
‘X-API-KEY’: ARSA_API_KEY,
‘Content-Type’: req.file.mimetype
}
});
if (response.data.is_live) {
req.livenessResult = response.data;
next(); // Lanjutkan ke handler berikutnya jika liveness terdeteksi
} else {
return res.status(403).json({ message: ‘Liveness check failed. User might be a spoofing attempt.’ });
}
} catch (error) {
console.error(‘Error during liveness check:’, error.response ? error.response.data : error.message);
return res.status(500).json({ message: ‘Failed to perform liveness check.’ });
}
}
// Contoh endpoint dengan middleware liveness check
app.post(‘/verify-with-liveness’, upload.single(‘faceImage’), checkLiveness, async (req, res) => {
// Jika sampai sini, liveness sudah terdeteksi. Lanjutkan dengan verifikasi wajah.
// Misalnya, lakukan face verification 1:1 atau 1:N di sini.
res.status(200).json({
message: ‘Liveness check successful. Proceeding with face verification.’,
livenessData: req.livenessResult
});
});
app.listen(port, () => {
console.log(`Server berjalan di http://localhost:${port}`);
});
“`
3. Contoh REST API Face Recognition Node.js: Verifikasi 1:1
Untuk verifikasi 1:1 (Face Matching Verification), Anda membandingkan dua wajah untuk memastikan keduanya milik orang yang sama. Ini umum digunakan untuk login atau autentikasi bertingkat.
“`javascript
// Tambahkan ke app.js
app.post(‘/face-verification’, upload.array(‘faceImages’, 2), async (req, res) => {
if (!req.files || req.files.length !== 2) {
return res.status(400).json({ message: ‘Please upload exactly two face images for verification.’ });
}
try {
const formData = new FormData();
formData.append(‘face1’, new Blob([req.files[0].buffer], { type: req.files[0].mimetype }), req.files[0].originalname);
formData.append(‘face2’, new Blob([req.files[1].buffer], { type: req.files[1].mimetype }), req.files[1].originalname);
const response = await axios.post(`${ARSA_API_BASE_URL}/verify`, formData, {
headers: {
‘X-API-KEY’: ARSA_API_KEY,
…formData.getHeaders() // Penting untuk FormData
}
});
res.status(200).json(response.data);
} catch (error) {
console.error(‘Error during face verification:’, error.response ? error.response.data : error.message);
res.status(500).json({ message: ‘Failed to perform face verification.’ });
}
});
“`
*Catatan: Untuk `FormData` di Node.js, Anda mungkin perlu menginstal `form-data` library (`npm install form-data`) dan menggunakannya secara eksplisit jika `axios` tidak menanganinya secara otomatis dengan `Blob` dari `multer.memoryStorage()`.*
4. Tutorial Face ID API Node: Identifikasi 1:N
Identifikasi 1:N (Face Search & Identification) digunakan untuk mencari seseorang dalam database wajah yang sudah ada. Ini relevan untuk sistem akses kontrol atau pemantauan. ARSA API memungkinkan manajemen face database yang terisolasi per akun, menjamin privasi dan pemisahan data antar tenant.
Pertama, Anda perlu mendaftarkan wajah ke dalam koleksi:
“`javascript
// Tambahkan ke app.js
app.post(‘/enroll-face’, upload.single(‘faceImage’), async (req, res) => {
if (!req.file) {
return res.status(400).json({ message: ‘No image file uploaded for enrollment.’ });
}
const { face_id, collection_id } = req.body; // face_id dan collection_id dari body request
if (!face_id || !collection_id) {
return res.status(400).json({ message: ‘face_id and collection_id are required.’ });
}
try {
const formData = new FormData();
formData.append(‘image’, new Blob([req.file.buffer], { type: req.file.mimetype }), req.file.originalname);
formData.append(‘face_id’, face_id);
formData.append(‘collection_id’, collection_id);
const response = await axios.post(`${ARSA_API_BASE_URL}/enroll`, formData, {
headers: {
‘X-API-KEY’: ARSA_API_KEY,
…formData.getHeaders()
}
});
res.status(200).json(response.data);
} catch (error) {
console.error(‘Error during face enrollment:’, error.response ? error.response.data : error.message);
res.status(500).json({ message: ‘Failed to enroll face.’ });
}
});
// Kemudian, untuk identifikasi 1:N
app.post(‘/face-identification’, upload.single(‘faceImage’), async (req, res) => {
if (!req.file) {
return res.status(400).json({ message: ‘No image file uploaded for identification.’ });
}
const { collection_id } = req.body;
if (!collection_id) {
return res.status(400).json({ message: ‘collection_id is required.’ });
}
try {
const formData = new FormData();
formData.append(‘image’, new Blob([req.file.buffer], { type: req.file.mimetype }), req.file.originalname);
formData.append(‘collection_id’, collection_id);
const response = await axios.post(`${ARSA_API_BASE_URL}/identify`, formData, {
headers: {
‘X-API-KEY’: ARSA_API_KEY,
…formData.getHeaders()
}
});
res.status(200).json(response.data);
} catch (error) {
console.error(‘Error during face identification:’, error.response ? error.response.data : error.message);
res.status(500).json({ message: ‘Failed to perform face identification.’ });
}
});
“`
5. Contoh Face Verification API JavaScript Fetch (Client-Side)
Meskipun artikel ini berfokus pada Node.js (server-side), seringkali Anda perlu mengirim gambar dari browser (client-side) ke server Node.js Anda. Berikut adalah contoh dasar menggunakan `fetch` di JavaScript:
“`javascript
// Contoh di browser (misalnya, di file HTML atau React/Vue component)
async function uploadImageForVerification(imageFile1, imageFile2) {
const formData = new FormData();
formData.append(‘faceImages’, imageFile1);
formData.append(‘faceImages’, imageFile2);
try {
const response = await fetch(‘/face-verification’, { // Endpoint Node.js Anda
method: ‘POST’,
body: formData
});
const data = await response.json();
console.log(‘Verification Result:’, data);
return data;
} catch (error) {
console.error(‘Error uploading images:’, error);
}
}
// Contoh penggunaan:
// const fileInput1 = document.getElementById(‘file1’);
// const fileInput2 = document.getElementById(‘file2’);
// uploadImageForVerification(fileInput1.files[0], fileInput2.files[0]);
“`
Manfaat Bisnis untuk Bank Digital
Mengimplementasikan ARSA Face Recognition & Liveness API memberikan dampak bisnis yang signifikan:
- Efisiensi Operasional: Otomatisasi proses e-KYC mengurangi waktu dan biaya verifikasi manual.
- Peningkatan Keamanan: Fitur liveness detection aktif dan pasif, serta kemampuan deteksi wajah dengan bounding box, secara efektif mencegah penipuan identitas.
- Kepatuhan Regulasi: Solusi ini dirancang untuk membantu bank digital memenuhi kewajiban e-KYC sesuai POJK 8/2023, POJK 21/2023, dan UU PDP 27/2022, dengan database wajah terisolasi per akun untuk privasi dan pemisahan tenant.
- Skalabilitas Biaya: Dengan model pay-per-use, Anda hanya membayar sesuai penggunaan API, tanpa biaya infrastruktur di muka. ARSA menawarkan paket Basic gratis (100 panggilan/bulan, 100 Face ID) dan paket berbayar mulai dari Pro $29/bulan (sekitar Rp 475.000) hingga Mega $1.290/bulan (sekitar Rp 21.000.000) dengan semua fitur tersedia di setiap paket. Detail lebih lanjut dapat dilihat di paket harga Face API.
- Pengalaman Pengguna Unggul: Proses verifikasi yang cepat dan minim friksi meningkatkan kepuasan pelanggan.
ARSA Technology telah berpengalaman selama 7+ tahun sebagai mitra NVIDIA Inception dan Intel, dengan deployment di Kementerian Pertahanan RI dan BUMN. Kami memahami kebutuhan enterprise dan pemerintah akan solusi AI yang praktis dan terbukti. Untuk detail teknis lebih lanjut, Anda dapat merujuk ke dokumentasi Face Recognition API.
FAQ
Apa itu contoh REST API face recognition Node.js yang paling umum digunakan?
Contoh REST API face recognition Node.js yang paling umum adalah endpoint untuk verifikasi 1:1 (membandingkan dua wajah) dan identifikasi 1:N (mencari wajah dalam database). ARSA Face Recognition & Liveness API menyediakan kedua fungsi ini dengan mudah diintegrasikan.
Bagaimana cara kerja middleware liveness check Express untuk mencegah penipuan?
Middleware liveness check Express bekerja dengan mengirimkan gambar atau video dari pengguna ke API liveness detection. API menganalisis apakah wajah tersebut berasal dari orang sungguhan atau upaya spoofing (misalnya, foto atau video). Jika liveness tidak terdeteksi, permintaan dapat diblokir, mencegah penipuan.
Apakah ada tutorial face ID API Node yang mendukung deteksi ekspresi wajah?
Ya, ARSA Face Recognition & Liveness API tidak hanya mendukung face recognition dan liveness detection, tetapi juga estimasi usia, klasifikasi gender, dan deteksi ekspresi (netral, senang, sedih, terkejut, marah). Tutorial face ID API Node yang komprehensif akan menunjukkan cara memanggil endpoint ini untuk mendapatkan data ekspresi.
Bagaimana ARSA Face Recognition & Liveness API membantu memenuhi regulasi e-KYC?
ARSA Face Recognition & Liveness API dirancang untuk mendukung bank digital dalam memenuhi kewajiban e-KYC sesuai regulasi seperti POJK 8/2023, POJK 21/2023, dan UU PDP 27/2022. Fitur verifikasi 1:1, identifikasi 1:N, dan deteksi liveness membantu memastikan keaslian identitas, sementara database wajah terisolasi per akun mendukung privasi data.
Kesimpulan
Mengintegrasikan face recognition API ke dalam aplikasi Node.js dan Express adalah langkah strategis bagi bank digital untuk meningkatkan keamanan, efisiensi, dan kepatuhan. Dengan ARSA Face Recognition & Liveness API, Anda mendapatkan solusi cloud SaaS yang cepat diimplementasikan, skalabel, dan kaya fitur, mulai dari face recognition 1:N hingga liveness detection aktif dan pasif.
Jangan biarkan proses verifikasi identitas menjadi hambatan. Mulai bangun sistem autentikasi biometrik Anda hari ini. Kunjungi ARSA Face Recognition & Liveness API untuk informasi lebih lanjut atau hubungi tim solusi ARSA untuk konsultasi khusus. Jelajahi juga semua produk ARSA untuk solusi AI dan IoT lainnya.
Stop Guessing, Start Optimizing.
Discover how ARSA Technology drives profit through intelligent systems.


