Advertisement

apa itu cors pada nodejs

 


 

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:

  1. Domain mana yang diizinkan mengakses server.
  2. Metode HTTP apa saja yang diizinkan (GET, POST, PUT, DELETE, dll.).
  3. 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:

  1. origin: Menentukan domain mana yang diizinkan mengakses server.
    • '*': Mengizinkan semua domain.
    • ['http://example.com', 'http://another.com']: Mengizinkan hanya domain tertentu.
  2. methods: Daftar metode HTTP yang diizinkan.
  3. allowedHeaders: Header spesifik yang diizinkan dalam permintaan.
  4. credentials: Jika true, 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.

 

 

 

 

 

 

 

 

 

 

 

 

Post a Comment

0 Comments