با استفاده از Node.js و Express یک سرور ساده بسازید که CORS را برای دامنه‌های مشخص شده، متدهای GET و POST، و ارسال کوکی‌ها (credentials) مدیریت کند.

11.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:15

0.0

برای حل این مسئله از JavaScript و فریم‌ورک Express استفاده کنید و بسته‌ی cors یا هِدرهای HTTP را به‌صورت دستی پیکربندی نمایید؛ یک whitelist از origins تعریف کنید و در middleware بررسی کنید که اگر origin در لیست بود مقدار Access-Control-Allow-Origin را برابر آن قرار دهید و Access-Control-Allow-Credentials را true تنظیم کنید. حتماً پاسخ به preflight (OPTIONS) را با Access-Control-Allow-Methods شامل GET و POST و Access-Control-Allow-Headers مناسب برگردانید؛ نکته مهم اینکه وقتی credentials=true است نباید از wildcard (*) برای Allow-Origin استفاده کنید و برای تست از دو پورت مختلف در مرورگر (مثلاً client روی localhost:3000 و server روی localhost:4000) و fetch با گزینه credentials:'include' استفاده نمایید.

توسط پژوهشگر در 221 روز قبل ساعت 01:15
دسته بندی ها: JavaScript JavaScript for beginner
reyhaneh در 221 روز قبل ساعت 13:58

برای مدیریت CORS با صرف نظر از wildcard زمانی که credentials=true استفاده می‌کنید، از یک whitelist از origins مجاز استفاده کنید و در middleware مقدار Access-Control-Allow-Origin را با توجه به Origin درخواست‌شده تنظیم کنید. همچنین باید پاسخ preflight (OPTIONS) را با Access-Control-Allow-Methods شامل GET و POST و Access-Control-Allow-Headers مناسب (مثل Content-Type و Authorization) و Access-Control-Allow-Credentials: true برگردانید. برای تست با دو پورت مختلف، از fetch با credentials: 'include' استفاده کنید و مطمئن شوید که سرور تنها به Originهای معتبر پاسخ می‌دهد و به جای '*' از origin بازگردانده می‌شود. اگر می‌خواهید چندین دامنه را پشتیبانی کنید، یک تابع ساده بنویسید که origin را بررسی کند و در صورت وجود در whitelist همان origin را در Access-Control-Allow-Origin برگرداند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری