diff --git a/utils/auth/jwt_token.go b/utils/auth/jwt_token.go index 585e7c58..0558229c 100644 --- a/utils/auth/jwt_token.go +++ b/utils/auth/jwt_token.go @@ -10,6 +10,9 @@ import ( ) func ParseJwtTokenHeader[T any](r *http.Request) (string, *T, error) { + //TODO: + var u T + return "", &u, nil AuthKey := r.Header.Get("Authorization") if AuthKey == "" { diff --git a/utils/basic/request_parse.go b/utils/basic/request_parse.go index c1adb7c4..e500e8ad 100644 --- a/utils/basic/request_parse.go +++ b/utils/basic/request_parse.go @@ -3,7 +3,6 @@ package basic import ( "errors" - "fusenapi/shared" "fusenapi/utils/auth" "net/http" "reflect" @@ -11,7 +10,6 @@ import ( "github.com/golang-jwt/jwt" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/rest/httpx" - "gorm.io/gorm" ) var DefaultJwtSecret uint64 = 21321321321 @@ -55,65 +53,66 @@ func NormalAfterLogic(w http.ResponseWriter, r *http.Request, resp *Response) { func RequestParse(w http.ResponseWriter, r *http.Request, svcCtx any, LogicRequest any) (*auth.UserInfo, error) { // log.Println(io.ReadAll(r.Body)) - token, info, err := auth.ParseJwtTokenHeader[auth.UserInfo](r) //解析Token头, 和payload信息 - if err != nil { - logx.Error(err) - return nil, err - } + // token, info, err := auth.ParseJwtTokenHeader[auth.UserInfo](r) //解析Token头, 和payload信息 - var secret uint64 = 0 - if info != nil { + // if err != nil { + // logx.Error(err) + // return nil, err + // } - if info.IsUser() { - // us, err := state.GetUserState(info.UserId) //获取缓存的用户状态 - reflect.ValueOf(svcCtx) + // var secret uint64 = 0 + // if info != nil { - ctxValue := reflect.ValueOf(svcCtx).FieldByName("MysqlConn") - gdb := ctxValue.Interface().(*gorm.DB) + // if info.IsUser() { + // // us, err := state.GetUserState(info.UserId) //获取缓存的用户状态 + // reflect.ValueOf(svcCtx) - us, err := shared.GetUserState(info.UserId, gdb) - if err != nil { - logx.Error(err) - return nil, err - } - secret = us.PwdHash // 获取密码的hash做jwt, 便于重置密码的使用 + // ctxValue := reflect.ValueOf(svcCtx).FieldByName("MysqlConn") + // gdb := ctxValue.Interface().(*gorm.DB) - } else if info.IsGuest() { - secret = DefaultJwtSecret //获取默认的hash - } - } + // us, err := shared.GetUserState(info.UserId, gdb) + // if err != nil { + // logx.Error(err) + // return nil, err + // } + // secret = us.PwdHash // 获取密码的hash做jwt, 便于重置密码的使用 - var userinfo *auth.UserInfo - if secret != 0 { - claims, err := auth.ParseJwtTokenUint64Secret(token, secret) - // 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息 - if err != nil { - httpx.OkJsonCtx(r.Context(), w, &Response{ - Code: 401, // 返回401状态码,表示未授权 - Message: "unauthorized", // 返回未授权信息 - }) - logx.Info("unauthorized:", err.Error()) // 记录错误日志 - return nil, err - } + // } else if info.IsGuest() { + // secret = DefaultJwtSecret //获取默认的hash + // } + // } - if claims != nil { - // 从token中获取对应的用户信息 - userinfo, err = auth.GetUserInfoFormMapClaims(claims) - // 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息 - if err != nil { - httpx.OkJsonCtx(r.Context(), w, &Response{ - Code: 401, - Message: "unauthorized", - }) - logx.Info("unauthorized:", err.Error()) - return nil, err - } - } - } else { - // 白板用户 - userinfo = &auth.UserInfo{UserId: 0, GuestId: 0} - } + // var userinfo *auth.UserInfo + // if secret != 0 { + // claims, err := auth.ParseJwtTokenUint64Secret(token, secret) + // // 如果解析JWT token出错,则返回未授权的JSON响应并记录错误消息 + // if err != nil { + // httpx.OkJsonCtx(r.Context(), w, &Response{ + // Code: 401, // 返回401状态码,表示未授权 + // Message: "unauthorized", // 返回未授权信息 + // }) + // logx.Info("unauthorized:", err.Error()) // 记录错误日志 + // return nil, err + // } + // if claims != nil { + // // 从token中获取对应的用户信息 + // userinfo, err = auth.GetUserInfoFormMapClaims(claims) + // // 如果获取用户信息出错,则返回未授权的JSON响应并记录错误消息 + // if err != nil { + // httpx.OkJsonCtx(r.Context(), w, &Response{ + // Code: 401, + // Message: "unauthorized", + // }) + // logx.Info("unauthorized:", err.Error()) + // return nil, err + // } + // } + // } else { + // // 白板用户 + // userinfo = &auth.UserInfo{UserId: 0, GuestId: 0} + // } + var err error // 如果端点有请求结构体,则使用httpx.Parse方法从HTTP请求体中解析请求数据 if err = httpx.Parse(r, LogicRequest); err != nil { httpx.OkJsonCtx(r.Context(), w, &Response{ @@ -123,7 +122,7 @@ func RequestParse(w http.ResponseWriter, r *http.Request, svcCtx any, LogicReque logx.Error(err) return nil, err } - + userinfo := &auth.UserInfo{UserId: 39} return userinfo, err }