📜 مقدمهای بر CORS در لاراول
CORS (Cross-Origin Resource Sharing) یک مکانیزم امنیتی است که به مرورگرها اجازه میدهد تا درخواستهایی از دامنههای مختلف (که به نام "cross-origin" شناخته میشوند) به سرور ارسال کنند. در لاراول، برای فعالسازی و مدیریت CORS، شما نیاز به تنظیمات خاصی دارید تا بتوانید درخواستهای منابع مختلف را مدیریت کنید.
در این مقاله، نحوه پیکربندی CORS در لاراول و استفاده از آن را توضیح خواهیم داد.
1. 🛠 نصب پکیج CORS در لاراول
برای مدیریت CORS در لاراول، میتوانید از پکیج barryvdh/laravel-cors استفاده کنید. این پکیج به شما اجازه میدهد تا درخواستهای cross-origin را به راحتی مدیریت کنید.
نصب پکیج CORS:
برای نصب پکیج، از دستور composer استفاده کنید:
2. ⚙️ تنظیمات پکیج CORS
بعد از نصب پکیج، باید فایل پیکربندی مربوط به CORS را منتشر کنید. برای این کار از دستور زیر استفاده کنید:
این دستور فایل پیکربندی config/cors.php را در پروژه شما ایجاد میکند.
3. 📝 تنظیمات فایل config/cors.php
در فایل config/cors.php شما میتوانید قوانین مربوط به CORS را تنظیم کنید. به طور پیشفرض، لاراول پیکربندی مناسبی برای اکثر پروژهها دارد. با این حال، میتوانید این تنظیمات را طبق نیازهای خود تغییر دهید.
مثال از فایل cors.php:
توضیحات تنظیمات:
-
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 را به صورت زیر اضافه کنید:
این Middleware به طور خودکار درخواستها را بررسی کرده و هدرهای CORS را به پاسخها اضافه میکند.
5. ⚡ تنظیمات پیشرفته CORS
تعیین CORS برای مسیرهای خاص:
شما میتوانید CORS را فقط برای برخی مسیرها فعال کنید و سایر مسیرها را از این تنظیمات مستثنی کنید. به این منظور، میتوانید تنظیمات را به صورت دقیقتر در routes/web.php یا routes/api.php مشخص کنید.
مثال: فعالسازی CORS برای یک مسیر خاص
در این مثال، فقط برای مسیر /example CORS فعال میشود.
6. 🧑💻 آزمایش CORS با ابزار Postman
برای آزمایش تنظیمات CORS، میتوانید از ابزارهایی مانند Postman استفاده کنید.
-
یک درخواست به سرور خود ارسال کنید و هدر
Originرا به یکی از دامنههای خارجی قرار دهید. -
در صورتی که پاسخ حاوی هدرهای CORS باشد (مثل
Access-Control-Allow-Origin)، نشاندهنده این است که پیکربندی CORS به درستی انجام شده است.
7. 🔄 پیکربندی CORS در تولید (Production)
در محیطهای تولید، معمولاً تنظیمات امنیتی بهطور دقیقتری نیاز دارند. در این حالت، بهتر است که allowed_origins را به یک یا چند دامنه خاص محدود کنید تا فقط درخواستهای معتبر از دامنههای خاص پذیرفته شوند.
این تنظیمات از ارسال درخواستهای CORS از دامنههای غیرمجاز جلوگیری میکند.
نتیجهگیری
مدیریت CORS در لاراول با استفاده از پکیج barryvdh/laravel-cors بهراحتی امکانپذیر است. با پیکربندی مناسب این پکیج، میتوانید امنیت درخواستهای cross-origin را تضمین کرده و درخواستها را از دامنههای معتبر بپذیرید. همچنین، لاراول امکاناتی برای سفارشیسازی دقیق تنظیمات CORS فراهم کرده است تا در پروژههای مختلف به راحتی استفاده کنید.