Compare commits
2 Commits
7cb171bc90
...
61e756eecf
Author | SHA1 | Date | |
---|---|---|---|
![]() |
61e756eecf | ||
![]() |
a9b48ea175 |
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
59
api/user.go
59
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1 @@
|
||||
MTY1NDA3MzA5MHxEdi1CQkFFQ180SUFBUkFCRUFBQV84cl9nZ0FCQm5OMGNtbHVad3dHQUFSMWMyVnlFVzFoYVc0dVoyOHZkSGx3WlM1VmMyVnlfNE1EQVFFRVZYTmxjZ0hfaEFBQkRRRUNTVVFCQkFBQkJWUnZhMlZ1QVF3QUFRaFZjMlZ5Ym1GdFpRRU1BQUVJVUdGemMzZHZjbVFCREFBQkJVVnRZV2xzQVF3QUFRdEJabVpwYkdsaGRHbHZiZ0VNQUFFSFEyOTFiblJ5ZVFFTUFBRUhWMlZpYzJsMFpRRU1BQUVHU0dsa1pHVnVBUVFBQVFaQ1lXNXVaV1FCQkFBQkJsUmxZVzFKUkFFRUFBRUhRM0psWVhSbFpBRUVBQUVFVW05c1pRRUVBQUFBUXYtRVB3RUNBU0JqTjJVeU1EazBaRGxtTkRVd1ltVmhNak5tTURWa01HTmpZemszWldWaVpRRUVNVEl6TkFJS01USXpRSEZ4TG1OdmJRZjh4TjlxUmdFQ0FBPT189JqRfiFtYh5iCXgmTfG1gTbmx1-nDGdxL99aHII06bM=
|
Reference in New Issue
Block a user