后台用户登录验证功能是很多项目的必须要有的逻辑,也是常见的技术需求 .
要实现这个逻辑首先要有数据库表结构如下:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL DEFAULT '',`password` varchar(100) NOT NULL DEFAULT 获取post的数据func LoginCheckPass(c *gin.Context) { password := c.PostForm("password") username := c.PostForm(username) info,uRole,ok := CheckKefuPass(username,password) userinfo := make(map[string]interface{}) if !ok { c.JSON(200code": 400msg": 验证失败return } userinfo[name"] = info.Name userinfo[kefu_id info.ID userinfo[type"] = kefu" if uRole.RoleId != 0 { userinfo[role_id uRole.RoleId } else2create_time time.Now().Unix() token,_ := tools.MakeToken(userinfo) userinfo[ref_token"] = true refToken,1)"> tools.MakeToken(userinfo) c.JSON(验证成功,正在跳转result: gin.H{ token: token,1)">: refToken,1)">": userinfo[],},}) }func CheckKefuPass(username string,password string) (models.User,models.User_role,bool) { info := models.FindUser(username) var uRole models.User_role if info.Name == "" || info.Password != tools.Md5(password) { return info,1)">false } uRole = models.FindRoleByUserId(info.ID) }
model里面
func FindUser(username string) User { user User DB.Where(name = ?",username).First(&user) user }