fix(settings): resolve superadmin domain from Origin before API host

Split frontends like my.goldarvin.ir were waiting on 404 retries for the API hostname, which made get_settings take ~16s.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-03 10:55:58 +03:30
co-authored by Cursor
parent 7e6cd92df4
commit d65bbce791
@@ -292,6 +292,17 @@ class SuperAdminProgramSettingsClient
try { try {
$request = request(); $request = request();
if ($request) { if ($request) {
// فرانت و API ممکن است دامنهٔ جدا باشند (my.goldarvin.ir → goldarvin.gholaktala.ir).
// سوپرادمین دامنهٔ اپ را می‌شناسد نه Hostِ API؛ Origin/Referer را اول بگذار
// وگرنه ۳ origin × ۳ retry روی ۴۰۴ حدود ۱۰–۱۷ ثانیه طول می‌کشد.
$origin = (string) $request->headers->get('Origin', '');
if ($origin !== '') {
$candidates[] = $this->normalizeHost($origin);
}
$referer = (string) $request->headers->get('Referer', '');
if ($referer !== '') {
$candidates[] = $this->normalizeHost($referer);
}
$forwarded = (string) $request->headers->get('X-Forwarded-Host', ''); $forwarded = (string) $request->headers->get('X-Forwarded-Host', '');
if ($forwarded !== '') { if ($forwarded !== '') {
$candidates[] = $this->normalizeHost(explode(',', $forwarded)[0] ?? ''); $candidates[] = $this->normalizeHost(explode(',', $forwarded)[0] ?? '');