علت خطا
وقتی صفحه را با 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 همچنان بررسی میشوند.