浏览代码

fix: GetClaims

2637309949 4 年之前
父节点
当前提交
d36117eae7

+ 2 - 7
internal/handler/bindmobilehandler.go

@@ -18,19 +18,14 @@ func BindMobileHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))
 			return
 		}
-		uid, err := ctx.GetUserId(r)
-		if err != nil {
-			httpx.OkJson(w, utils.ReturnHTTPFail(err))
-			return
-		}
-		sid, err := ctx.GetSessionKey(r)
+		uid, skey, err := ctx.GetClaims(r)
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))
 			return
 		}
 		l := logic.NewBindMobileLogic(r.Context(), ctx)
 		l.UserId = uid
-		l.SessionKey = sid
+		l.SessionKey = skey
 		resp, err := l.BindMobile(req)
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))

+ 2 - 7
internal/handler/getuserhandler.go

@@ -12,19 +12,14 @@ import (
 
 func GetUserHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		uid, err := ctx.GetUserId(r)
-		if err != nil {
-			httpx.OkJson(w, utils.ReturnHTTPFail(err))
-			return
-		}
-		sid, err := ctx.GetSessionKey(r)
+		uid, skey, err := ctx.GetClaims(r)
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))
 			return
 		}
 		l := logic.NewGetUserLogic(r.Context(), ctx)
 		l.UserId = uid
-		l.SessionKey = sid
+		l.SessionKey = skey
 		resp, err := l.GetUser()
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))

+ 2 - 7
internal/handler/jzqrcodehandler.go

@@ -11,19 +11,14 @@ import (
 
 func JzQrCodeHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		uid, err := ctx.GetUserId(r)
-		if err != nil {
-			httpx.OkJson(w, utils.ReturnHTTPFail(err))
-			return
-		}
-		sid, err := ctx.GetSessionKey(r)
+		uid, skey, err := ctx.GetClaims(r)
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))
 			return
 		}
 		l := logic.NewJzQrCodeLogic(r.Context(), ctx)
 		l.UserId = uid
-		l.SessionKey = sid
+		l.SessionKey = skey
 		resp, err := l.JzQrCode()
 		if err != nil {
 			httpx.OkJson(w, utils.ReturnHTTPFail(err))

+ 20 - 21
internal/svc/servicecontext.go

@@ -157,40 +157,39 @@ type ServiceContext struct {
 }
 
 // GetUserId defined TODO
-func (sc *ServiceContext) GetUserId(r *http.Request) (int64, error) {
+func (sc *ServiceContext) GetClaims(r *http.Request) (int64, string, error) {
 	parser := token.NewTokenParser(token.WithResetDuration(time.Minute))
 	tok, err := parser.ParseToken(r, sc.Config.JwtAuth.AccessSecret, "")
 	if err != nil {
-		return 0, err
+		return 0, "", err
 	}
+	userId, sessionKey := int64(0), ""
 	m := tok.Claims.(jwt.MapClaims)
 	switch nbf := m["userId"].(type) {
 	case string:
-		i, _ := strconv.ParseInt(nbf, 10, 64)
-		return i, err
+		i, err := strconv.ParseInt(nbf, 10, 64)
+		if err != nil {
+			return 0, "", err
+		}
+		userId = i
 	case json.Number:
-		v, _ := nbf.Int64()
-		return v, err
-	}
-	return 0, err
-}
-
-// GetSessionKey defined TODO
-func (sc *ServiceContext) GetSessionKey(r *http.Request) (string, error) {
-	parser := token.NewTokenParser(token.WithResetDuration(time.Minute))
-	tok, err := parser.ParseToken(r, sc.Config.JwtAuth.AccessSecret, "")
-	if err != nil {
-		return "", err
+		v, err := nbf.Int64()
+		if err != nil {
+			return 0, "", err
+		}
+		userId = v
 	}
-	m := tok.Claims.(jwt.MapClaims)
 	switch nbf := m["sessionKey"].(type) {
 	case string:
-		return nbf, err
+		sessionKey = nbf
 	case json.Number:
-		v, _ := nbf.Int64()
-		return fmt.Sprintf("%v", v), err
+		v, err := nbf.Int64()
+		if err != nil {
+			return 0, "", err
+		}
+		sessionKey = fmt.Sprintf("%v", v)
 	}
-	return "", err
+	return userId, sessionKey, err
 }
 
 func NewServiceContext(c config.Config) *ServiceContext {