钉钉单页模式:增加 Referer 判断,兼容 UA 被替换的桌面钉钉 #488

Merged
renshen merged 1 commits from fix/renshen-dingtalk-focus-referer into main 2026-10-24 11:46:36 +08:00

View File

@ -12,7 +12,12 @@ class FocusMode
{
$section = $sectionSlug ?: (string) (request()->route('section') ?: request()->segment(3));
// 钉钉工作台打开时 UA 可能被替换成普通浏览器,Referer 仍指向钉钉域名。
$referer = strtolower((string) request()->headers->get('referer'));
$fromDingTalk = str_contains((string) request()->userAgent(), 'DingTalk')
|| str_contains($referer, 'dingtalk');
return in_array($section, ['financial-risk-control'], true)
&& (request()->boolean('focus') || str_contains((string) request()->userAgent(), 'DingTalk'));
&& (request()->boolean('focus') || $fromDingTalk);
}
}