From a9b48ea1753f7f988e533c8d419279e5bf642c12 Mon Sep 17 00:00:00 2001 From: jiayuqi7813 <63686458+jiayuqi7813@users.noreply.github.com> Date: Wed, 1 Jun 2022 20:10:56 +0800 Subject: [PATCH] fix bug --- api/user.go | 59 +++++++++++++++++++++++----------------------------- snctf.db | Bin 65536 -> 65536 bytes 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/api/user.go b/api/user.go index 71580aa..730e019 100644 --- a/api/user.go +++ b/api/user.go @@ -14,15 +14,12 @@ import ( //连接数据库 func Link() { err := db.Inimysql() - if err != nil{ + if err != nil { panic(err) } } - - - -func Login(c * gin.Context) { +func Login(c *gin.Context) { var request LoginRequest var user User @@ -37,21 +34,21 @@ func Login(c * gin.Context) { //code 0用户名不存在 //code 1用户名或密码错误 - err := DB.Take(&user,"username = ?",request.Username).Error + err := DB.Take(&user, "username = ?", request.Username).Error if err != nil { - c.JSON(200,gin.H{ - "Error":true, - "Msg":"登陆失败", - "Code": 0, + c.JSON(200, gin.H{ + "Error": true, + "Msg": "登陆失败", + "Code": 0, }) return } //判断md5值与数据库内容是否相同 - if user.Password != tools.MD5(request.Password){ - c.JSON(200,gin.H{ - "Error":true, - "Msg":"用户名或密码错误", - "Code": 1, + if user.Password != tools.MD5(request.Password) { + c.JSON(200, gin.H{ + "Error": true, + "Msg": "用户名或密码错误", + "Code": 1, }) return } @@ -80,8 +77,7 @@ func Login(c * gin.Context) { } - -func Register(c *gin.Context) { +func Register(c *gin.Context) { var request RegisterRequest var user User var score ScoreResponse @@ -102,8 +98,8 @@ func Register(c *gin.Context) { if !checkUsername(request.Username) { c.JSON(200, gin.H{ "Error": true, - "Msg": "用户名不符合规范", - "Code": 2, + "Msg": "用户名不符合规范", + "Code": 2, }) return } @@ -133,7 +129,7 @@ func Register(c *gin.Context) { user.Email = request.Email user.Created = tools.Timestamp() score.Score = 0 - score.Username =request.Username + score.Username = request.Username //创建数据 err1 := DB.Table("user").Create(&user).Error err2 := DB.Table("score").Create(&score).Error @@ -147,10 +143,10 @@ func Register(c *gin.Context) { } c.JSON(200, gin.H{ + "code": 200, "success": "注册成功", }) - } // Logout 实现用户注销登陆 @@ -178,8 +174,9 @@ func Logout(c *gin.Context) { fmt.Sprintf("[%s] logout success!", user.Username) c.JSON(200, gin.H{"code": 200, "msg": "Logout success!"}) } + //GetInfoByUserId 获取用户信息 -func GetInfoByUserId(c *gin.Context) { +func GetInfoByUserId(c *gin.Context) { var info PublicInfoResponse Link() DB := db.DBsnctf @@ -191,7 +188,6 @@ func GetInfoByUserId(c *gin.Context) { } //检查id是否合法 - if !tools.CheckID(id) { c.JSON(400, gin.H{"code": 400, "msg": "ID format error!"}) return @@ -205,10 +201,8 @@ func GetInfoByUserId(c *gin.Context) { } c.JSON(200, gin.H{"code": 200, "data": info}) - } - // checkUsername 验证用户名是否符合中文数字字母下划线横杠,长度1到10位,返回true或false func checkUsername(username string) bool { if !(utf8.RuneCountInString(username) > 0) || !(utf8.RuneCountInString(username) < 11) { @@ -226,7 +220,6 @@ func checkEmail(email string) bool { return reg.MatchString(email) } - // checkPassword 验证密码是否符合长度6到20位,返回true或false func checkPassword(password string) bool { if !(utf8.RuneCountInString(password) > 5) || !(utf8.RuneCountInString(password) < 21) { @@ -234,23 +227,25 @@ func checkPassword(password string) bool { } return true } + // isNameExisted 判断用户名是否已经被占用,被占用返回true,未被占用则返回false func isNameExisted(user User, username string) bool { Link() DB := db.DBsnctf - err := DB.First(&user,"Username = ?",username).Error + err := DB.First(&user, "Username = ?", username).Error if err != nil { return false } return true } + // isNameExisted 判断邮箱是否已经被占用,被占用返回true,未被占用则返回false func isEmailExisted(user User, email string) bool { Link() DB := db.DBsnctf - err := DB.First(&user,"Email = ?",email).Error + err := DB.First(&user, "Email = ?", email).Error if err != nil { return false } @@ -268,11 +263,9 @@ func Session(c *gin.Context) { c.JSON(200, gin.H{"code": 200, "data": user}) } - - //下面是身份认证用 AUTH部分 // AuthRequired 用于普通用户权限控制的中间件 -func AuthRequired()gin.HandlerFunc{ +func AuthRequired() gin.HandlerFunc { return func(c *gin.Context) { session, err := Store.Get(c.Request, "SNCTFSESSID") if err != nil { @@ -286,11 +279,11 @@ func AuthRequired()gin.HandlerFunc{ c.Abort() return } - if user.Role != 0&&user.Role!=1{ + if user.Role != 0 && user.Role != 1 { c.JSON(400, gin.H{"code": 400, "msg": "Permission denied"}) c.Abort() return } c.Next() } -} \ No newline at end of file +} diff --git a/snctf.db b/snctf.db index 1461359e4a2dd5b80c13a71102b154140e07192c..ad9af13ac27abbaab08fb1953dcc746ca6bbdc62 100644 GIT binary patch delta 239 zcmZo@U}lqz;9%iMN=Y#{Fi%WNPBlxkut+gWHA+b~PqR!-Gd52)O*T&|Ni8lhnw&4M=xS(e zY+~Y2Sg4nrpPMw@<#-AUs!8T4$)>5P7KtVXK)vP`X%>biX^Ez(#)+wx21bd-Mj(?6 zK_&?pnwT0QOwu#od_zu$k%xu<3IqRF{#X3>`LApiR5-#f#>v9MAkG1H0VgwzX}I~7 HzSso-OKm|e delta 59 zcmV-B0L1@*fCPYm1dtm6E0G*S0V}a!qz?)M4%h$>o)0_@*s~EJ$_}&G9xMR}0uSl{ R5A_e~vk{Qq53}ko7SJ6R6czvg