Basic Auth Node Js Express

4 min read Jun 28, 2024
Basic Auth Node Js Express

Basic Auth dengan Node.js Express

Basic Authentication adalah skema autentikasi yang sederhana dan umum digunakan untuk melindungi sumber daya web. Dalam skema ini, pengguna mengirimkan kredensial (username dan password) dalam header permintaan HTTP. Server kemudian memvalidasi kredensial ini dan memberikan akses ke sumber daya jika valid.

Dalam tutorial ini, kita akan belajar bagaimana mengimplementasikan Basic Authentication pada aplikasi Node.js Express.

Langkah 1: Persiapan

  1. Buat proyek Node.js:

    mkdir basic-auth-example
    cd basic-auth-example
    npm init -y
    
  2. Instal dependensi:

    npm install express
    
  3. Buat file app.js:

    const express = require('express');
    const app = express();
    
    // ... (Code akan diisi di langkah selanjutnya)
    
    app.listen(3000, () => {
        console.log('Server berjalan di port 3000');
    });
    

Langkah 2: Implementasi Basic Authentication

  1. Tambahkan middleware Basic Authentication:

    const express = require('express');
    const app = express();
    
    // Middleware Basic Authentication
    app.use('/protected', (req, res, next) => {
        const authHeader = req.headers.authorization;
    
        if (!authHeader) {
            return res.status(401).send('Authentication required');
        }
    
        const [user, password] = Buffer.from(authHeader.split(' ')[1], 'base64').toString().split(':');
    
        // Validasi kredensial
        if (user === 'admin' && password === 'password') {
            next(); // Jika kredensial valid, lanjutkan ke route berikutnya
        } else {
            return res.status(401).send('Invalid credentials');
        }
    });
    
    // Route yang dilindungi
    app.get('/protected', (req, res) => {
        res.send('Selamat datang di area terlindungi!');
    });
    
    app.listen(3000, () => {
        console.log('Server berjalan di port 3000');
    });
    

    Kode ini menambahkan middleware yang akan dijalankan untuk setiap permintaan ke route /protected. Middleware ini memeriksa header Authorization untuk kredensial Basic Authentication. Jika header tidak ditemukan atau kredensial tidak valid, permintaan akan ditolak dengan status 401 (Unauthorized).

  2. Menguji Basic Authentication:

    Anda dapat menguji Basic Authentication dengan menggunakan tools seperti Postman atau curl. Untuk mengirim permintaan HTTP dengan kredensial Basic Authentication, Anda perlu menambahkan header Authorization dengan format: Basic <base64 encoded credentials>.

    Contoh dengan curl:

    curl -i -H "Authorization: Basic YWRtaW46cGFzc3dvcmQ=" http://localhost:3000/protected
    

    Kode YWRtaW46cGFzc3dvcmQ= adalah username:password (admin:password) yang diencode dengan base64.

Langkah 3: Menyimpan Kredensial

Contoh di atas menyimpan kredensial secara hardcode di dalam kode. Dalam aplikasi produksi, Anda harus menyimpan kredensial secara aman, misalnya dengan menggunakan:

  • Database: Simpan username dan password dalam database dan gunakan query untuk memvalidasi kredensial.
  • File Konfigurasi: Simpan kredensial dalam file konfigurasi terpisah dan akses file tersebut dari kode.
  • Variable Environment: Gunakan variable environment untuk menyimpan kredensial secara terpisah dari kode.

Kesimpulan

Basic Authentication adalah metode sederhana untuk melindungi sumber daya web. Namun, untuk aplikasi yang lebih kompleks, disarankan untuk menggunakan metode autentikasi yang lebih aman seperti OAuth2 atau JWT.

Latest Posts