CORS adalah singkatan dari Cross-Origin Resource Sharing, sebuah mekanisme keamanan pada browser yang mengatur bagaimana sumber daya (resource) pada suatu server dapat diakses oleh domain yang berbeda (cross-origin).
Dalam Node.js, cors
adalah pustaka (library) populer yang mempermudah pengaturan kebijakan CORS di aplikasi web berbasis Node.js, terutama jika Anda menggunakan framework seperti Express.js.
Mengapa CORS Dibutuhkan?
Secara default, browser membatasi permintaan HTTP antar domain yang berbeda (cross-origin) untuk alasan keamanan. Misalnya, jika aplikasi frontend Anda berjalan di http://localhost:3000
dan mencoba meminta data dari backend di http://localhost:5000
, permintaan ini dianggap cross-origin, dan akan diblokir oleh browser kecuali server backend secara eksplisit mengizinkannya.
Cara Kerja cors
di Node.js
Library cors
memungkinkan Anda menentukan kebijakan untuk:
- Domain mana yang diizinkan mengakses server.
- Metode HTTP apa saja yang diizinkan (GET, POST, PUT, DELETE, dll.).
- Header khusus apa yang boleh disertakan dalam permintaan.
Instalasi
Untuk menggunakan pustaka cors
, Anda perlu menginstalnya terlebih dahulu menggunakan npm atau yarn:
npm install cors
Contoh Penggunaan dengan Express.js
Berikut adalah contoh sederhana menggunakan cors
:
const express = require('express');
const cors = require('cors');
const app = express();
// Menggunakan CORS dengan pengaturan default
app.use(cors());
// Endpoint contoh
app.get('/api/data', (req, res) => {
res.json({ message: 'Data berhasil diakses' });
});
// Menjalankan server
app.listen(5000, () => {
console.log('Server berjalan di http://localhost:5000');
});
Konfigurasi Kustom
Anda dapat menyesuaikan kebijakan CORS dengan menentukan opsi konfigurasi. Contohnya:
app.use(cors({
origin: 'http://localhost:3000', // Mengizinkan hanya dari domain ini
methods: ['GET', 'POST'], // Mengizinkan hanya metode GET dan POST
allowedHeaders: ['Content-Type', 'Authorization'], // Header yang diizinkan
credentials: true // Mengizinkan pengiriman cookies atau header otentikasi
}));
Penjelasan Opsi:
origin
: Menentukan domain mana yang diizinkan mengakses server.'*'
: Mengizinkan semua domain.['http://example.com', 'http://another.com']
: Mengizinkan hanya domain tertentu.
methods
: Daftar metode HTTP yang diizinkan.allowedHeaders
: Header spesifik yang diizinkan dalam permintaan.credentials
: Jikatrue
, server akan menerima cookie dan header otorisasi dari permintaan lintas domain.
Keuntungan Library cors
- Mudah digunakan dibandingkan mengatur header CORS secara manual.
- Mendukung konfigurasi fleksibel.
- Memastikan server Anda mematuhi aturan keamanan web.
Dengan cors
, Anda dapat mengatasi masalah blokir CORS pada browser sambil tetap mengontrol kebijakan keamanan aplikasi Anda.
0 Comments