From b1205306e48edc199dcabc0556dabf86e6303713 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Sun, 18 May 2025 14:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9jwt=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/main.go b/main.go index bf10c5c..108440d 100644 --- a/main.go +++ b/main.go @@ -100,18 +100,6 @@ func writeLogger(c *gin.Context) { } go dao.InsertLogToDB(path, ip, method, params) } - -type CustomClaims struct { - ID int `json:"id"` - Username string `json:"username"` - Email string `json:"email"` -} - -func (c CustomClaims) Valid() error { - //TODO implement me - panic("custom claims valid not implement yet!") -} - func JWTAuthMiddleware() gin.HandlerFunc { return func(c *gin.Context) { if proto.Config.LOG_SAVE_DAYS > 0 { @@ -168,9 +156,7 @@ func JWTAuthMiddleware() gin.HandlerFunc { //token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { // return proto.SigningKey, nil //}) - - claims := &CustomClaims{} - token, err := jwt.ParseWithClaims(tokenString, claims, func(t *jwt.Token) (interface{}, error) { + token, err := jwt.Parse(tokenString, func(t *jwt.Token) (interface{}, error) { // 验证签名算法 if _, ok := t.Method.(*jwt.SigningMethodHMAC); !ok { return nil, jwt.ErrSignatureInvalid @@ -196,13 +182,11 @@ func JWTAuthMiddleware() gin.HandlerFunc { } // 将用户信息添加到上下文中 - c.Set("id", token.Claims.(jwt.MapClaims)["id"]) - c.Set("username", token.Claims.(jwt.MapClaims)["username"]) id := token.Claims.(jwt.MapClaims)["id"] - userID := int(id.(float64)) - c.Set("user_id", userID) + c.Set("id", id) + c.Set("user_id", int(id.(float64))) - if UserFuncIntercept(int(token.Claims.(jwt.MapClaims)["id"].(float64)), c.Request.URL.Path) { + if UserFuncIntercept(int(id.(float64)), c.Request.URL.Path) { c.AbortWithStatusJSON(http.StatusOK, gin.H{"message": "unauthorized", "error": "no function permission", "code": proto.NoPermission}) return }