diff --git a/main.go b/main.go index fca5c65..fe5c0cf 100644 --- a/main.go +++ b/main.go @@ -12,8 +12,10 @@ import ( "gitea.com/red-future/common/http" "gitea.com/red-future/common/middleware" _ "gitea.com/red-future/common/swagger" + "gitea.com/red-future/common/utils" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/util/gconv" ) func StartServerProxy() { @@ -64,6 +66,21 @@ func StartServerProxy() { proxy.ErrorHandler = func(writer netHttp.ResponseWriter, request *netHttp.Request, e error) { writer.WriteHeader(netHttp.StatusBadGateway) } + + user, err := utils.GetUserInfo(r.GetCtx()) + if err != nil { + g.Log().Errorf(r.GetCtx(), "获取用户信息失败: %v", err) + r.Response.Status = 500 + r.Response.WriteJsonExit(map[string]interface{}{ + "success": false, + "code": 500, + "message": "获取用户信息失败", + }) + return + } + // 将用户信息通过 Header 传递给下游服务 + r.Request.Header.Set("X-User-Info", gconv.String(&user)) + proxy.ServeHTTP(r.Response.Writer, r.Request) }) }