ssh-manager/controller/login.go
2021-10-19 19:47:50 +08:00

49 lines
1.2 KiB
Go

package controller
import (
"crypto/md5"
"fmt"
"github.com/gin-gonic/gin"
"ssh_manage/common"
"ssh_manage/database"
"ssh_manage/errcode"
"ssh_manage/model"
"ssh_manage/model/Apiform"
)
func Login(c *gin.Context) {
//common.Sendsms()
//log.Print(db.DB.Exec("select * from products"))
//token := c.MustGet("token").(string)
//c.JSON(200, gin.H{"token": token})
var resp Apiform.Resp
resp.Code = errcode.C_from_err
resp.Msg = "手机号和密码不能为空!"
var user Apiform.Login
if c.ShouldBind(&user) == nil {
if common.Verify(&user) {
var userinfo model.User
db := database.Get()
defer db.Close()
md5 := md5.New()
password := fmt.Sprintf("%x", md5.Sum([]byte(user.Code)))
db.DB.Where(model.User{Phone: user.Phone,Password: password}).FirstOrCreate(&userinfo)
newToken, err := common.ReleaseToken(userinfo.ID)
if err == nil && userinfo.ID > 0 {
resp.Code = errcode.C_nil_err
resp.Msg = "登陆成功"
resp.Data = userinfo
resp.Token = newToken
} else {
resp.Code = errcode.S_auth_err
resp.Msg = "Token创建失败"
}
} else {
resp.Code = errcode.S_Verify_err
resp.Msg = "密码错误"
}
}
//log.Printf(c.ClientIP())
c.JSON(200, resp)
}