From 1009d7ddc7354e134602e9410a17b5169cc0c7e5 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Wed, 12 Jun 2024 10:22:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=8A=B6=E6=80=81=E7=A0=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=8C=E6=96=87=E6=A1=A3=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- handler/user.go | 56 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 2dc24e4..406ce61 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,7 @@ 14 | 查询数据失败 15 | 设备添加失败 16 | 设备修改失败 -17 | 数据库数据操作失败 \ No newline at end of file +17 | 数据库数据操作失败 +18 | uuid不存在 +19 | Token解析错误 +20 | 获取redis错误 \ No newline at end of file diff --git a/handler/user.go b/handler/user.go index edd6818..de1643f 100644 --- a/handler/user.go +++ b/handler/user.go @@ -39,9 +39,18 @@ type QRReq struct { } func ScanUUID(c *gin.Context) { + var ReqData QRReq + if err := c.ShouldBind(&ReqData); err != nil { + c.JSON(200, gin.H{"code": 9, "message": err, "data": "2"}) + return + } id := uuid.New() - worker.SetHash(id.String(), map[string]interface{}{"status": "0", "address": "", "ip": ""}) - c.JSON(200, gin.H{"code": 0, "message": "success", "data": id.String()}) + res := worker.SetHash(id.String(), map[string]interface{}{"status": "0", "address": ReqData.Address, "ip": c.ClientIP()}) + if res { + c.JSON(200, gin.H{"code": 0, "message": "success", "data": id.String()}) + } else { + c.JSON(200, gin.H{"code": 8, "message": "qr code invalid", "data": "1"}) + } } func SetQRStatus(c *gin.Context) { @@ -52,10 +61,10 @@ func SetQRStatus(c *gin.Context) { data := worker.GetHashAll(qrsetReq.UUID) c.JSON(200, gin.H{"code": 0, "message": "success", "data": data}) } else { - c.JSON(200, gin.H{"code": 1, "message": "该二维码数据无效", "data": "1"}) + c.JSON(200, gin.H{"code": 8, "message": "qr code invalid", "data": "1"}) } } else { - c.JSON(200, gin.H{"code": 1, "message": err, "data": "2"}) + c.JSON(200, gin.H{"code": 9, "message": err, "data": "2"}) } } @@ -68,16 +77,19 @@ func ConfirmQRLogin(c *gin.Context) { if user_name != "" { key := "user_" + user_name.(string) token := worker.GetRedis(key) + if token == "" { + c.JSON(200, gin.H{"code": 20, "message": "Token不存在", "data": "20"}) + } if worker.SetRedis(qrsetReq.UUID, token) { - c.JSON(200, gin.H{"code": 0, "message": "success", "data": "1"}) + c.JSON(200, gin.H{"code": 0, "message": "success", "data": "0"}) } else { - c.JSON(200, gin.H{"code": 1, "message": "设置Token失败", "data": "3"}) + c.JSON(200, gin.H{"code": 8, "message": "设置Token失败", "data": "8"}) } } else { - c.JSON(200, gin.H{"code": 1, "message": "failed", "data": "2"}) + c.JSON(200, gin.H{"code": 20, "message": "failed", "data": "20"}) } } else { - c.JSON(200, gin.H{"code": 1, "message": err, "data": "3"}) + c.JSON(200, gin.H{"code": 9, "message": err, "data": "3"}) } } @@ -87,11 +99,13 @@ func GetQRStatus(c *gin.Context) { end := worker.SetHashWithField(qrReq.UUID, "address", qrReq.Address) end_ := worker.SetHashWithField(qrReq.UUID, "ip", qrReq.IP) if !end || !end_ { - c.JSON(200, gin.H{"code": 1, "message": "failed", "data": "2"}) + c.JSON(200, gin.H{"code": 8, "message": "set redis failed", "data": "8"}) return } str := worker.GetHash(qrReq.UUID, "status") switch str { + case "": + c.JSON(200, gin.H{"code": 18, "message": "uuid not found", "data": "0"}) //空值 case "0": c.JSON(200, gin.H{"code": 0, "message": "success", "data": "0"}) //空值 case "1": @@ -102,7 +116,7 @@ func GetQRStatus(c *gin.Context) { return signingKey, nil }) if err != nil { - c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": err.Error(), "code": 19, "message": "error"}) return } // 返回令牌 @@ -114,7 +128,7 @@ func GetQRStatus(c *gin.Context) { c.JSON(200, gin.H{"code": 0, "message": "success", "data": data}) //确认返回token数据 } } else { - c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": err.Error(), "code": 9, "message": "error"}) } } @@ -140,7 +154,7 @@ func loginHandler(c *gin.Context) { }) tokenString, err = token.SignedString(signingKey) if err != nil { - c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": err.Error(), "code": 5, "message": "error"}) return } @@ -163,10 +177,10 @@ func loginHandler(c *gin.Context) { c.JSON(200, gin.H{"code": 0, "message": "success", "data": data}) } else { //用户名或密码错误 - c.JSON(200, gin.H{"error": "用户名或密码错误", "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": "用户名或密码错误", "code": 6, "message": "error"}) } } else { - c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": err.Error(), "code": 9, "message": "error"}) } } @@ -180,7 +194,7 @@ func registerHandler(c *gin.Context) { req_data.Password = hex.EncodeToString(hasher.Sum(nil)) // 生成密码的 MD5 散列值 } if service.ContainsUser(req_data.User, req_data.Email) == true { - c.JSON(200, gin.H{"error": "user already exists", "code": 1, "message": "error"}) + c.JSON(200, gin.H{"error": "user already exists", "code": 7, "message": "error"}) return } id := service.CreateUser(req_data.User, req_data.Password, req_data.Email) @@ -192,13 +206,17 @@ func registerHandler(c *gin.Context) { }) tokenString, err = token.SignedString(signingKey) if err != nil { - c.JSON(200, gin.H{"error": err.Error()}) + c.JSON(200, gin.H{"error": err.Error(), "code": 5, "message": "error"}) } } else { - c.JSON(200, gin.H{"error": err.Error()}) + c.JSON(200, gin.H{"error": err.Error(), "code": 9, "message": "error"}) } fmt.Println(req_data) - worker.SetRedisWithExpire(tokenString, tokenString, time.Hour*10) // 设置过期时间为10分钟 + res := worker.SetRedisWithExpire(tokenString, tokenString, time.Hour*10) // 设置过期时间为10分钟 + if !res { + c.JSON(200, gin.H{"error": "set token error", "code": 8, "message": "error"}) + return + } // 返回令牌 - c.JSON(200, gin.H{"token": tokenString, "username": req_data.User}) + c.JSON(200, gin.H{"token": tokenString, "username": req_data.User, "code": 0, "message": "success"}) }