سایت چند-دامنهای است؛ هر شهر یک دامنه (`yasuj-nobat.ir`, `ahvaz-nobat.ir`, ...). backend قابلیت اضافهشدن اسم سایتِ شهر به پیامک کد تأیید را دارد، اما چون درخواست به `api.clinic-pro.ir` میرود، backend نمیداند از کدام شهر آمده. پس **frontend باید دامنهی خودش را در body درخواست `send-code` بفرستد.**
## مشکل / هدف
فراخوانی `send-code` فعلی فقط `mobile` و `captcha_token` میفرستد. باید فیلد `domain` (دامنهی فعلی مرورگر) هم ارسال شود تا backend اسم سایت شهر را در پیامک قرار دهد. تغییر باید ایمن باشد: اگر domain در دسترس نبود، ارسال نشود (backend fallback دارد).
-`window.location.hostname` مقدار خالص دامنه میدهد (مثل `yasuj-nobat.ir`) بدون پروتکل — دقیقاً همان چیزی که backend برای lookup در `cities.domain` میخواهد.
## نکات مهم
- **اختیاری و ایمن**: اگر `domain` نبود (مثلاً `localhost` یا دامنهی اصلی)، backend fallback به برند «نوبت ۷۲۴» دارد؛ پس هیچ رفتار موجودی نمیشکند.
- روی `localhost`/دامنهی توسعه، `hostname` مقدار غیرشهری میدهد → backend شهر پیدا نمیکند → برند پیشفرض. اشکالی ندارد.
- **قرارداد API**: فیلد جدید body = `domain` (string، اختیاری) در `POST /api/v1/user/send-code`. مطابق backend نسخهی `clinicpro/.claude/prompt/otp-sms-site-name.md`. مطمئن شو backend اول اجرا/دیپلوی شده باشد.
- این تغییر client-side است؛ نیازی به `generateMetadata` یا تغییر SSR ندارد.
- تست:
```bash
cd nobat724_front
npm run lint
npm run build
```
- الگوی پروژه: از همان `request.sendCode` استفاده کن؛ فراخوانی مستقیم axios نساز.
@@ -2,12 +2,13 @@ import { removeTokenHead } from "@/helper";
importapifrom"./api";
exportconstrequest={
sendCode:(mobile,captcha_token)=>
sendCode:(mobile,captcha_token,domain)=>
api.post(
"api/v1/user/send-code",
{
mobile,
captcha_token,
...(domain?{domain}:{}),
},
removeTokenHead
),
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.