From 67605778dded882ec30ae4589abdf8dd0e12bfbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Fri, 11 Jul 2025 17:20:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(login):=20=E6=B7=BB=E5=8A=A0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E8=AF=B7=E6=B1=82=E9=92=A9=E5=AD=90=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20CORS=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 login 模块中添加了全局请求钩子 beforeServeHook - 实现了跨域请求的统一处理,增加了 localhost 的支持 - 优化了 i18n 信息的处理方式 --- login/internal/cmd/cmd.go | 9 +++++++++ modules/base/middleware/middleware.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/login/internal/cmd/cmd.go b/login/internal/cmd/cmd.go index 73efc1c12..442b233d3 100644 --- a/login/internal/cmd/cmd.go +++ b/login/internal/cmd/cmd.go @@ -9,8 +9,10 @@ import ( i18n "blazing/modules/base/middleware" "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gcmd" "github.com/gogf/gf/v2/os/gfile" + "github.com/gogf/gf/v2/os/glog" ) var ( @@ -26,6 +28,7 @@ var ( s := g.Server() s.SetServerAgent(cool.Config.Name) + s.BindHookHandler("/*", ghttp.HookBeforeServe, beforeServeHook) runtime.SetMutexProfileFraction(1) // (非必需)开启对锁调用的跟踪 runtime.SetBlockProfileRate(1) // (非必需)开启对阻塞操作的跟踪 s.EnablePProf() @@ -35,8 +38,14 @@ var ( } // i18n 信息 s.BindHandler("/i18n", i18n.I18nInfo) + // g.Server().BindMiddleware("/*", MiddlewareCORS) s.Run() return nil }, } ) + +func beforeServeHook(r *ghttp.Request) { + glog.Debugf(r.GetCtx(), "beforeServeHook [is file:%v] URI:%s", r.IsFileRequest(), r.RequestURI) + r.Response.CORSDefault() +} diff --git a/modules/base/middleware/middleware.go b/modules/base/middleware/middleware.go index b0a6f4e59..6e9028694 100644 --- a/modules/base/middleware/middleware.go +++ b/modules/base/middleware/middleware.go @@ -14,7 +14,7 @@ import ( func MiddlewareCORS(r *ghttp.Request) { r.Response.CORSDefault() corsOptions := r.Response.DefaultCORSOptions() - corsOptions.AllowDomain = []string{"*"} + corsOptions.AllowDomain = []string{"*", "localhost"} if !r.Response.CORSAllowedOrigin(corsOptions) { r.Response.WriteStatus(http.StatusForbidden) return