مارک پلاس

تکنولوژی نوین اینترنتی

CORS لاراول

دسته‌بندی‌ها

CORS لاراول
CORS لاراول

📜 مقدمه‌ای بر CORS در لاراول

CORS (Cross-Origin Resource Sharing) یک مکانیزم امنیتی است که به مرورگرها اجازه می‌دهد تا درخواست‌هایی از دامنه‌های مختلف (که به نام "cross-origin" شناخته می‌شوند) به سرور ارسال کنند. در لاراول، برای فعال‌سازی و مدیریت CORS، شما نیاز به تنظیمات خاصی دارید تا بتوانید درخواست‌های منابع مختلف را مدیریت کنید.

در این مقاله، نحوه پیکربندی CORS در لاراول و استفاده از آن را توضیح خواهیم داد.


1. 🛠 نصب پکیج CORS در لاراول

برای مدیریت CORS در لاراول، می‌توانید از پکیج barryvdh/laravel-cors استفاده کنید. این پکیج به شما اجازه می‌دهد تا درخواست‌های cross-origin را به راحتی مدیریت کنید.

نصب پکیج CORS:

برای نصب پکیج، از دستور composer استفاده کنید:

bash
composer require barryvdh/laravel-cors

2. ⚙️ تنظیمات پکیج CORS

بعد از نصب پکیج، باید فایل پیکربندی مربوط به CORS را منتشر کنید. برای این کار از دستور زیر استفاده کنید:

bash
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"

این دستور فایل پیکربندی config/cors.php را در پروژه شما ایجاد می‌کند.


3. 📝 تنظیمات فایل config/cors.php

در فایل config/cors.php شما می‌توانید قوانین مربوط به CORS را تنظیم کنید. به طور پیش‌فرض، لاراول پیکربندی مناسبی برای اکثر پروژه‌ها دارد. با این حال، می‌توانید این تنظیمات را طبق نیازهای خود تغییر دهید.

مثال از فایل cors.php:

php
return [ 'paths' => ['api/*'], // آدرس‌هایی که می‌خواهید CORS را فعال کنید 'allowed_methods' => ['*'], // همه متدهای HTTP (GET, POST, PUT, DELETE) را مجاز کنید 'allowed_origins' => ['*'], // همه اوریجین‌ها مجاز هستند 'allowed_headers' => ['*'], // همه هدرها مجاز هستند 'exposed_headers' => [], 'max_age' => 0, 'supports_credentials' => false, ];

توضیحات تنظیمات:

  • paths: این تنظیم مشخص می‌کند که CORS برای چه مسیرهایی فعال باشد. به عنوان مثال، اگر بخواهید فقط برای API‌ها CORS را فعال کنید، این مسیر را به 'api/*' تغییر دهید.

  • allowed_methods: متدهای HTTP که برای درخواست‌های CORS مجاز هستند. * به این معنی است که همه متدها مجاز هستند.

  • allowed_origins: مشخص می‌کند که کدام اوریجین‌ها (دامنه‌ها) می‌توانند درخواست‌های CORS ارسال کنند. به طور پیش‌فرض این مقدار * است که به معنی اجازه دادن به همه دامنه‌ها است.

  • allowed_headers: مشخص می‌کند که چه هدرهایی در درخواست‌های CORS مجاز هستند.

  • supports_credentials: اگر این مقدار به true تنظیم شود، مرورگر درخواست‌ها را همراه با کوکی‌ها ارسال می‌کند.


4. 🔧 استفاده از Middleware برای CORS

بعد از پیکربندی، باید اطمینان حاصل کنید که Middleware مربوط به CORS در اپلیکیشن لاراول شما فعال باشد. لاراول به طور پیش‌فرض، این middleware را در فایل app/Http/Kernel.php ثبت کرده است.

افزودن Middleware به Kernel.php:

در قسمت protected $middleware، پکیج CORS را به صورت زیر اضافه کنید:

php
protected $middleware = [ \Barryvdh\Cors\HandleCors::class, ];

این Middleware به طور خودکار درخواست‌ها را بررسی کرده و هدرهای CORS را به پاسخ‌ها اضافه می‌کند.


5. ⚡ تنظیمات پیشرفته CORS

تعیین CORS برای مسیرهای خاص:

شما می‌توانید CORS را فقط برای برخی مسیرها فعال کنید و سایر مسیرها را از این تنظیمات مستثنی کنید. به این منظور، می‌توانید تنظیمات را به صورت دقیق‌تر در routes/web.php یا routes/api.php مشخص کنید.

مثال: فعال‌سازی CORS برای یک مسیر خاص

php
use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::middleware(['cors'])->get('/example', function (Request $request) { return response()->json(['message' => 'CORS is enabled!']); });

در این مثال، فقط برای مسیر /example CORS فعال می‌شود.


6. 🧑‍💻 آزمایش CORS با ابزار Postman

برای آزمایش تنظیمات CORS، می‌توانید از ابزارهایی مانند Postman استفاده کنید.

  1. یک درخواست به سرور خود ارسال کنید و هدر Origin را به یکی از دامنه‌های خارجی قرار دهید.

  2. در صورتی که پاسخ حاوی هدرهای CORS باشد (مثل Access-Control-Allow-Origin)، نشان‌دهنده این است که پیکربندی CORS به درستی انجام شده است.


7. 🔄 پیکربندی CORS در تولید (Production)

در محیط‌های تولید، معمولاً تنظیمات امنیتی به‌طور دقیق‌تری نیاز دارند. در این حالت، بهتر است که allowed_origins را به یک یا چند دامنه خاص محدود کنید تا فقط درخواست‌های معتبر از دامنه‌های خاص پذیرفته شوند.

php
'allowed_origins' => [ 'https://example.com', 'https://another-domain.com', ],

این تنظیمات از ارسال درخواست‌های CORS از دامنه‌های غیرمجاز جلوگیری می‌کند.


نتیجه‌گیری

مدیریت CORS در لاراول با استفاده از پکیج barryvdh/laravel-cors به‌راحتی امکان‌پذیر است. با پیکربندی مناسب این پکیج، می‌توانید امنیت درخواست‌های cross-origin را تضمین کرده و درخواست‌ها را از دامنه‌های معتبر بپذیرید. همچنین، لاراول امکاناتی برای سفارشی‌سازی دقیق تنظیمات CORS فراهم کرده است تا در پروژه‌های مختلف به راحتی استفاده کنید.

محتوای مرتبط

پست‌های مرتبط