DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Daftar Isi:
Autentikasi dasar API di Node.js adalah langkah penting untuk memastikan bahwa hanya pengguna yang terotorisasi yang dapat mengakses API. Ada beberapa metode autentikasi yang bisa diterapkan, dan kali ini kita akan membahas autentikasi dasar yang relatif mudah untuk diterapkan.
Autentikasi dasar melibatkan pengiriman nama pengguna dan kata sandi sebagai bagian dari request HTTP. Metode ini ideal untuk aplikasi sederhana atau ketika kamu sedang belajar tentang keamanan API.
Untuk memulai, kamu perlu menginstal beberapa modul npm. Gunakan perintah berikut di terminal:
npm install express basic-auth
Authorization
di request kamu.Setelah modul terinstal, kita bisa mulai menulis kode untuk mengimplementasikan autentikasi dasar.
const express = require('express');
const auth = require('basic-auth');
const app = express();
function checkAuth(req, res, next) {
const user = auth(req);
const userName = 'user'; // Sesuaikan dengan nama pengguna kamu
const password = 'pass'; // Sesuaikan dengan kata sandi kamu
if (user && user.name === userName && user.pass === password) {
return next();
} else {
res.set('WWW-Authenticate', 'Basic realm="example"');
return res.status(401).send('Unauthorized');
}
}
app.get('/', checkAuth, (req, res) => {
res.send('Selamat datang, kamu berhasil diotorisasi!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Setelah kode aplikasi ditulis, langkah selanjutnya adalah menguji API kamu. Kamu bisa menggunakan alat-alat seperti Postman
atau curl
untuk mengakses endpoint yang dibuat.
Jika dijalankan dengan benar, kamu akan diminta memasukkan nama pengguna dan kata sandi saat mengakses http://localhost:3000/. Setelah autentikasi berhasil, kamu akan menerima pesan konfirmasi.
Meskipun autentikasi dasar bisa menjadi langkah awal yang baik, penting untuk menyadari bahwa metode ini tidak mengenkripsi kredensial. Untuk aplikasi di environment produksi, pertimbangkan untuk menggunakan autentikasi token atau OAuth serta koneksi HTTPS untuk keamanan lebih.
Link terkait: