عیب‌یابی

رفع خطای Origin در محیط لوکال

حل خطای «مبدأ درخواست معتبر نیست» در صفحه لاگین محلی whycloud بدون حذف محافظت CSRF.

علت خطا

وقتی صفحه را با localhost، 127.0.0.1 یا IP شبکه باز می‌کنید اما PUBLIC_ORIGIN مقدار دیگری دارد، درخواست POST مرورگر از نظر Origin رد می‌شود.

راه‌حل امن در توسعه

برای تست فقط روی دستگاه شخصی، OTP_DEV_MODE=true و COOKIE_SECURE=false را در env سرویس account-api قرار دهید. مبدأ با Host همان درخواست و فقط آدرس‌های Loopback یا Private-IP مطابقت داده می‌شود.

دامنه مجاز مشخص

اگر مبدأ دلخواهی دارید، ALLOWED_ORIGINS را به فهرست دقیق Originهای مورداعتماد با Scheme و Port کامل تبدیل کنید؛ به‌هیچ‌وجه wildcard استفاده نکنید.

Production

در Production باید PUBLIC_ORIGIN=https://whycloud.ir و COOKIE_SECURE=true باشد؛ OTP_DEV_MODE=false بماند. Host Header و CSRF Token همچنان بررسی می‌شوند.

مطالب مرتبط