From 22d01c3c55be3207a1fbca4d4cc3789ec3ef826d Mon Sep 17 00:00:00 2001 From: npc0-hue Date: Thu, 12 Mar 2026 09:43:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B5=8B=E8=AF=95=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E5=8F=8C=E9=87=8D=20/admin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/server/service/gaia/login_options.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin/server/service/gaia/login_options.go b/admin/server/service/gaia/login_options.go index b0ce594c7..f2e3164b0 100644 --- a/admin/server/service/gaia/login_options.go +++ b/admin/server/service/gaia/login_options.go @@ -14,10 +14,10 @@ import ( // GetLoginOptions 获取登录方式选项(供登录页展示钉钉/OAuth2 按钮,不暴露密钥) func (e *SystemIntegratedService) GetLoginOptions(frontendOrigin string) (res response.LoginOptionsResponse) { - // 非本地的需要加上admin + // 非本地的需要加上 admin(若 Referer 已带 /admin 则不再追加,避免 /admin/admin) integrateDing := e.getIntegratedConfigRaw(gaia.SystemIntegrationDingTalk) frontendOrigin = strings.TrimSuffix(frontendOrigin, "/") - if !strings.Contains(frontendOrigin, "localhost") { + if !strings.Contains(frontendOrigin, "localhost") && !strings.HasSuffix(frontendOrigin, "/admin") { frontendOrigin = frontendOrigin + "/admin" } if integrateDing.Status && integrateDing.AppKey != "" { @@ -79,7 +79,7 @@ func (e *SystemIntegratedService) GetDingTalkTestAuthURL(frontendOrigin string) return "", fmt.Errorf("请先配置 AppKey 与 AppSecret") } frontendOrigin = strings.TrimSuffix(frontendOrigin, "/") - if !strings.Contains(frontendOrigin, "localhost") { + if !strings.Contains(frontendOrigin, "localhost") && !strings.HasSuffix(frontendOrigin, "/admin") { frontendOrigin = frontendOrigin + "/admin" } callbackURI := frontendOrigin + "/#/loginCallback?provider=dingtalk"