From cd3571554fe512d688ea4dfadf60e0d89cdbc435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Tue, 2 Dec 2025 09:07:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9basedo=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=202=E3=80=81=E6=8F=90=E4=BE=9B=E8=8E=B7?= =?UTF-8?q?=E5=8F=96authen=E4=B8=AD=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- do/base_do.go | 13 +++++++++---- middleware/middleware.go | 2 ++ utils/utils.go | 23 +++++++++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/do/base_do.go b/do/base_do.go index 842334d..37c5067 100644 --- a/do/base_do.go +++ b/do/base_do.go @@ -1,16 +1,21 @@ package do import ( - "go.mongodb.org/mongo-driver/v2/bson" "time" + + "go.mongodb.org/mongo-driver/v2/bson" ) type MongoBaseDO struct { Id bson.ObjectID `bson:"_id,omitempty" json:"id"` // MongoDB 默认 ID - Creator bson.ObjectID `bson:"creator,omitempty" json:"creator"` + Creator interface{} `bson:"creator,omitempty" json:"creator"` CreatedAt time.Time `bson:"createdAt,omitempty" json:"createdAt"` - Updater bson.ObjectID `bson:"updater,omitempty" json:"updater"` + Updater interface{} `bson:"updater,omitempty" json:"updater"` UpdatedAt time.Time `bson:"updatedAt,omitempty" json:"updatedAt"` - TenantId bson.ObjectID `bson:"tenantId" json:"tenantId" default:"1"` // 租户ID + TenantId interface{} `bson:"tenantId" json:"tenantId" default:"1"` // 租户ID IsDeleted bool `bson:"isDeleted" json:"isDeleted" default:"false"` } +type User struct { + Id interface{} `bson:"_id,omitempty" json:"id"` // MongoDB 默认 ID + TenantId interface{} `bson:"tenantId" json:"tenantId" default:"1"` // 租户ID +} diff --git a/middleware/middleware.go b/middleware/middleware.go index 2bbf766..d37ba83 100644 --- a/middleware/middleware.go +++ b/middleware/middleware.go @@ -2,6 +2,7 @@ package middleware import ( "context" + "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gtime" @@ -35,6 +36,7 @@ func Limiter(r *ghttp.Request) { r.Middleware.Next() } func Auth(r *ghttp.Request) { + //utils.GetUserInfo(r.GetCtx()) token := r.Header.Get("Authorization") if token == "" || !gstr.HasPrefix(token, "Bearer ") { r.Response.WriteStatusExit(401, "Unauthorized") diff --git a/utils/utils.go b/utils/utils.go index 5c24731..7e319fb 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -1,9 +1,15 @@ package utils import ( + "context" "fmt" + "gitee.com/red-future---jilin-g/common/do" + "github.com/gogf/gf/v2/database/gredis" "github.com/gogf/gf/v2/errors/gcode" "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/util/gconv" + "github.com/tiger1103/gfast-token/gftoken" "reflect" "time" ) @@ -51,3 +57,20 @@ func GetMonthToday(t time.Time, month int) time.Time { } return target.AddDate(0, 0, t.Day()-1) } +func GetUserInfo(ctx context.Context) (user do.User, err error) { + redisAddr := g.Cfg().MustGet(ctx, "redis.default.address").String() + gft := gftoken.NewGfToken( + gftoken.WithCacheKey("gfToken:"), + gftoken.WithTimeout(20), + gftoken.WithMaxRefresh(10), + gftoken.WithMultiLogin(true), + //gftoken.WithExcludePaths(g.SliceStr{"/excludeDemo"}), + gftoken.WithGRedisConfig(&gredis.Config{ + Address: redisAddr, + Db: 1, + })) + data, _ := gft.ParseToken(g.RequestFromCtx(ctx)) + user.Id = gconv.Map(data.Data)["id"] + user.TenantId = gconv.Map(data.Data)["tenantId"] + return +}