Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis

Menerapkan Autentikasi Token Bearer di Node.js dengan Express

Mengamankan endpoint API REST & microservices penting. Autentikasi Bearer Token populer untuk akses resmi. Blog ini membahas pengaturan, dasar, & praktik terbaik keamanan.

Ardianto Nugroho

Ardianto Nugroho

Updated on April 15, 2025

Di era API RESTful dan layanan mikro, mengamankan endpoint Anda sangat penting. Salah satu metode populer dan efektif untuk memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses sumber daya tertentu adalah melalui otentikasi Bearer Token. Dalam blog ini, kita akan menjelajahi cara mengimplementasikan otentikasi Bearer Token dalam aplikasi Node.js menggunakan Express. Kita akan membahas dasar-dasar Bearer Token, cara menyiapkannya di aplikasi Anda, dan praktik terbaik untuk memastikan arsitektur keamanan yang kuat.

đź’ˇ
Apidog adalah alat canggih yang dirancang untuk meningkatkan efisiensi pengembangan API dengan menawarkan serangkaian fitur komprehensif untuk membuat, menguji, dan mendokumentasikan API. Ia juga menawarkan alat bantu untuk mendapatkan token otentikasi API dari semua jenis. Gratis! Coba hari ini!
button

Apa Itu Otentikasi Bearer Token?

Otentikasi Bearer Token melibatkan penerbitan token setelah otentikasi pengguna, yang harus disertakan oleh klien dalam header Authorization dari permintaan berikutnya. Token ini bertindak sebagai "pembawa" kredensial, yang berarti bahwa siapa pun yang memiliki token dapat memperoleh akses ke sumber daya terkait. JSON Web Tokens (JWT) adalah bentuk Bearer Token yang umum digunakan karena sifatnya yang stateless dan fleksibilitasnya.

Langkah 1: Menyiapkan Aplikasi Node.js dan Express Anda

Sebelum kita menyelami implementasi Bearer Token, mari kita siapkan aplikasi Node.js dan Express dasar. Kita akan mulai dengan menginisialisasi proyek baru dan menginstal dependensi yang diperlukan.

1. Inisialisasi Proyek Baru:

mkdir express-bearer-token && cd express-bearer-token
npm init -y

2. Instal Paket yang Diperlukan:

npm install express body-parser jsonwebtoken
  • express: Framework web untuk Node.js.
  • jsonwebtoken: Pustaka untuk menandatangani, memverifikasi, dan mendekode JWT.
  • body-parser: Middleware untuk mengurai body permintaan yang masuk.

3. Siapkan Server Dasar:

Buat file index.js dan siapkan server Express:

const express = require('express');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');

const app = express();
const PORT = 3000;
const SECRET_KEY = 'your_secret_key';

app.use(bodyParser.json());

app.get('/', (req, res) => {
    res.send('Selamat Datang di Tutorial Otentikasi Bearer Token!');
});

app.listen(PORT, () => {
    console.log(`Server berjalan di http://localhost:${PORT}`);
});

Langkah 2: Menghasilkan JWT

Pertama dan terutama, Anda perlu membuat endpoint untuk login pengguna untuk menghasilkan dan mengirim kembali token JWT. Demi kesederhanaan, kita akan menggunakan pengguna dummy.

1. Tambahkan Rute Login:

const users = {
    user1: { username: 'user1', password: 'password1' }  // Pengguna dummy
};

app.post('/login', (req, res) => {
    const { username, password } = req.body;
    const user = users[username];

    if (user && user.password === password) {
        const token = jwt.sign({ username }, SECRET_KEY, { expiresIn: '1h' });
        res.json({ token });
    } else {
        res.status(401).send('Kredensial tidak valid');
    }
});

Langkah 3: Melindungi Rute dengan Bearer Token

Untuk melindungi rute tertentu, Anda memerlukan middleware yang memvalidasi Bearer Token dari permintaan yang masuk.

1. Buat Middleware Otentikasi:

Buat fungsi middleware untuk memverifikasi token Bearer. Middleware ini akan memeriksa header Authorization dalam permintaan yang masuk dan memverifikasi token menggunakan kunci rahasia.

const authenticateToken = (req, res, next) => {
    const authHeader = req.headers['authorization'];
    const token = authHeader && authHeader.split(' ')[1];  // Bearer <token>

    if (token == null) return res.sendStatus(401);  // Tidak ada token

    jwt.verify(token, SECRET_KEY, (err, user) => {
        if (err) return res.sendStatus(403);  // Token tidak valid

        req.user = user;
        next();
    });
};

2. Membuat Rute:

Buat rute untuk login dan rute yang dilindungi yang memerlukan otentikasi.

const users = [
  { id: 1, username: 'user1', password: 'password1' },
  { id: 2, username: 'user2', password: 'password2' }
];

app.post('/login', (req, res) => {
  const { username, password } = req.body;
  const user = users.find(u => u.username === username && u.password === password);

  if (!user) {
    return res.status(400).send('Username atau password salah');
  }

  const token = jwt.sign({ username: user.username }, 'your_jwt_secret_key', { expiresIn: '1h' });
  res.json({ token });
});

app.get('/protected', authenticateToken, (req, res) => {
  res.send('Ini adalah rute yang dilindungi');
});

Langkah 4: Menguji Implementasi

Jalankan server Anda:

node app.js

Untuk menguji implementasi:

  1. Login: Kirim permintaan POST ke /login dengan body JSON yang berisi username dan password yang valid. Jika kredensial benar, Anda akan menerima JWT.
  2. Akses Rute yang Dilindungi: Kirim permintaan GET ke /protected dengan header Authorization diatur ke Bearer <your_token>. Jika token valid, Anda akan dapat mengakses rute yang dilindungi.

Menguji Otentikasi Bearer Token API dengan Apidog

Otentikasi token Bearer adalah metode umum yang digunakan dalam aplikasi web untuk mengamankan permintaan API. Apidog, alat API serbaguna, menyederhanakan proses ini, memungkinkan pengembang untuk mengotentikasi permintaan API dengan mudah. Berikut adalah panduan langkah demi langkah tentang cara Anda dapat menguji otentikasi token Bearer API menggunakan Apidog.

Langkah 1: Menyiapkan Apidog

  1. Unduh dan Instal Apidog: Unduh Apidog dan ikuti instruksi instalasi untuk sistem operasi Anda.
  2. Buat Proyek Baru: Buka Apidog dan buat proyek baru tempat Anda dapat mengelola permintaan dan pengujian API Anda.

Langkah 2: Menambahkan Token Bearer ke Permintaan API

1. Pilih Otentikasi Token Bearer: Di dasbor proyek, buat permintaan API baru. Navigasikan ke "Auth", dan pilih "Bearer Token" dari dropdown.

2. Masukkan Token: Masukkan langsung nilai token Anda. Apidog secara otomatis memberinya awalan dengan "Bearer" untuk permintaan sebenarnya.

3. Kirim Permintaan: Dengan token Bearer yang diatur, kirim permintaan. Apidog akan menyertakan token dalam header otorisasi, memungkinkan Anda untuk mengakses sumber daya yang dilindungi.

Langkah 3: Memverifikasi Respons

Setelah mengirim permintaan, periksa respons untuk memastikan bahwa panggilan API berhasil. Status 200 OK biasanya menunjukkan otentikasi yang berhasil.

Send API request with bearer token at Apidog.

Mengapa Memilih Bearer Token untuk Otentikasi API?

Otentikasi token Bearer banyak dipilih untuk otentikasi API karena beberapa keuntungan:

  1. Statelessness: Token Bearer memungkinkan server untuk mengotentikasi permintaan tanpa mempertahankan status sesi, sehingga lebih mudah untuk menskalakan aplikasi.
  2. Kesederhanaan: Token mudah diimplementasikan dan digunakan, biasanya disertakan dalam header HTTP Authorization.
  3. Keamanan: Token dapat dienkripsi dan memiliki waktu kedaluwarsa, meningkatkan keamanan.
  4. Interoperabilitas: Token Bearer distandarisasi dan dapat digunakan di berbagai platform dan layanan, mempromosikan interoperabilitas.

Manfaat ini menjadikan token Bearer sebagai opsi yang kuat dan fleksibel untuk mengamankan API.

Praktik Terbaik untuk Keamanan Bearer Token

1. Gunakan Kunci Rahasia yang Kuat:

Pastikan kunci rahasia Anda yang digunakan untuk menandatangani JWT kompleks dan disimpan dengan aman. Hindari hardcoding di basis kode Anda—pertimbangkan untuk menggunakan variabel lingkungan.

2. Kedaluwarsa Token:

Selalu tetapkan waktu kedaluwarsa untuk token untuk meminimalkan risiko penyalahgunaan jika dicuri. Putar dan batalkan token secara teratur.

3. HTTPS:

Gunakan HTTPS untuk melindungi data saat transit, termasuk Token Bearer, memastikan enkripsi antara klien dan server.

4. Penyimpanan Aman:

Di sisi klien, simpan token dengan aman. Cookie HTTP-only dan Secure seringkali merupakan pilihan terbaik daripada penyimpanan lokal atau penyimpanan sesi.

5. Pembatasan Laju dan Pemantauan:

Terapkan pembatasan laju untuk mencegah serangan brute force. Selain itu, pantau API Anda untuk setiap upaya akses yang tidak sah.

6. Daftar Hitam Token yang Dikompromikan:

Pertahankan mekanisme untuk membatalkan token, seperti daftar hitam, jika ada kebutuhan untuk mencabut akses segera.

Kesimpulan

Otentikasi Bearer Token menggunakan JWT dalam aplikasi Node.js dan Express menyediakan pendekatan yang kuat dan terukur untuk mengamankan API Anda. Dengan mengikuti langkah-langkah yang diuraikan dalam blog ini, Anda dapat mengimplementasikan otentikasi berbasis token yang aman dan secara efektif melindungi sumber daya Anda.

Keamanan adalah proses berkelanjutan, dan sementara Bearer Token menawarkan banyak keuntungan, selalu tetap terinformasi tentang praktik terbaik dan ancaman keamanan terbaru. Dengan fondasi ini, Anda berada di jalur yang benar untuk membangun API yang aman, terukur, dan efisien di Node.js menggunakan Express.

Snowflake MCP Server: Bagaimana Cara Menggunakannya?Strategi Efektif

Snowflake MCP Server: Bagaimana Cara Menggunakannya?

Pelajari cara setel Snowflake MCP Server & fitur Apidog MCP Server: hubungkan spesifikasi API ke AI, tingkatkan produktivitas dev.

Ardianto Nugroho

April 15, 2025

Cara Menggunakan BigQuery MCP ServerStrategi Efektif

Cara Menggunakan BigQuery MCP Server

Pelajari BigQuery MCP Server & Apidog MCP Server: akses data & hubungkan API ke AI. Tingkatkan produktivitas & kualitas kode!

Ardianto Nugroho

April 15, 2025

Cara Menyiapkan Server Mobile Next MCP untuk Otomasi SelulerStrategi Efektif

Cara Menyiapkan Server Mobile Next MCP untuk Otomasi Seluler

Panduan lengkap ini memandu Anda menyiapkan Mobile Next MCP Server untuk pengujian otomatisasi seluler & bagaimana Apidog MCP Server mengubah alur kerja pengembangan API Anda dengan menghubungkan asisten AI ke spesifikasi API.

Ardianto Nugroho

April 10, 2025