cors Middleware

Herkese merhaba, ExpressJS yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda cors middleware anlatacağım. Hadi başlayalım !
Table of Contents
Express.js, web uygulamaları oluşturmak için sıklıkla kullanılan bir Node.js framework’üdür. Bu makalede, Express.js uygulamalarında kullanılan cors middleware’ine odaklanacağız. cors, Cross-Origin Resource Sharing’in kısaltmasıdır ve web uygulamalarının diğer kaynaklardan (farklı domain, protokol veya port) veri almasına izin veren bir mekanizmadır.
cors Nedir ve Neden Kullanılır?
Modern web uygulamaları, birçok farklı kaynaktan veri alabilir ve tüketebilir. Ancak, bir uygulama yalnızca kendi kaynağından veri almakla sınırlıysa, birçok fırsatı kaçırabilir. İşte burada cors devreye girer.
Bir web sitesi, diğer bir web sitesindeki kaynakları (örneğin bir API endpoint’i) çağırmak istediğinde, bu çağrı cross-origin olarak adlandırılır. Cross-origin çağrılar varsayılan olarak engellenir, ancak cors middleware’i, belirli kaynaklardan veri almaya izin verir.
cors middleware’i, web sunucularının gelen isteklerin orijinlerini kontrol etmelerine ve buna göre davranmalarına izin verir. Bu şekilde, bir uygulamanın yalnızca belirli kaynaklardan veri almasına izin verilebilir ve güvenliği artırılabilir.
cors Middleware Nasıl Kullanılır?
Paketin Kurulumu
cors middleware’i, Express.js uygulamalarında kullanmak oldukça kolaydır. Öncelikle, cors modülünü yüklemeniz gerekir. Bu, npm veya yarn paket yöneticisi kullanılarak yapılabilir.
npm install cors
Tüm Kaynaklardan Veri Almaya İzin Verme
cors middleware’i, uygulamanın istediğiniz tüm rotalarında kullanılabilir. Bunun için, uygulamanın app.js veya index.js gibi ana dosyasına aşağıdaki gibi bir kod eklemeniz yeterlidir:
const express = require('express');
const cors = require('cors');
const app = express();
// Tüm rotalarda cors middleware'ini kullan
app.use(cors());
Bu örnekte, cors middleware’i, tüm rotalarda kullanılmak üzere app.use() fonksiyonuyla eklenir. cors() fonksiyonu, varsayılan olarak tüm kaynaklardan veri almaya izin verir.
Belirli Kaynaklardan Veri Almaya İzin Verme
cors middleware’i, birkaç farklı seçenekle yapılandırılabilir. Örneğin, yalnızca belirli kaynaklardan veri almaya izin vermek istiyorsanız, aşağıdaki gibi bir kod kullanabilirsiniz:
const express = require('express');
const cors = require('cors');
const app = express();
// Sadece belirli kaynaklardan veri alınmasına izin ver
const corsOptions = {
origin: 'https://example.com'
};
app.use(cors(corsOptions));
Bu örnekte, yalnızca `https://example.com` kaynağından veri alınmasına izin verilir. `corsOptions` nesnesi, `cors` middleware’inin yapılandırmasını değiştirmek için kullanılır.
Özel Yapılandırmalar
`cors` middleware’i, ayrıca HTTP yöntemlerine (GET, POST, PUT vb.) veya özel başlıklara göre davranışlarını değiştirmek için de yapılandırılabilir. Aşağıdaki örnek, yalnızca GET ve POST isteklerine izin verir ve `X-Requested-With` başlığını engeller:
const express = require('express');
const cors = require('cors');
const app = express();
// Sadece GET ve POST isteklerine izin ver, X-Requested-With başlığını engelle
const corsOptions = {
methods: ['GET', 'POST'],
allowedHeaders: ['Content-Type'],
exposedHeaders: ['Authorization'],
};
app.use(cors(corsOptions));
Bu örnekte, corsOptions nesnesi, yalnızca GET ve POST isteklerine izin verirken, X-Requested-With başlığını engeller. Ayrıca, Content-Type başlığına izin verilirken, Authorization başlığı açılır.
Sonuç
Bu makalede, Express.js uygulamalarında cors middleware’inin ne olduğunu ve nasıl kullanıldığını inceledik. cors, modern web uygulamalarının, farklı kaynaklardan veri almasına olanak tanıyan bir mekanizmadır. cors middleware’i, Express.js uygulamalarının güvenliğini artırabilir ve kaynakları sınırlayabilir. Ayrıca, cors middleware’i, yapılandırılabilen birçok seçenekle birlikte gelir, böylece uygulamanın ihtiyaçlarına göre ayarlanabilir.
Evet cors middleware ve kullanımı bu şekilde olmakta. Tüm NodeJS yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.