[GO] GO语言gin框架实现管理员认证登陆接口
发布时间:2021-05-21 06:49:24 所属栏目:大数据 来源: https://www.jb51.cc
导读:后台用户登录验证功能是很多项目的必须要有的逻辑,也是常见的技术需求 . 要实现这个逻辑首先要有数据库表结构如下: CREATE TABLE `user` ( `id` int ( 11 ) NOT NULL AUTO_INCREMENT,`name` varchar( 50 ) NOT NULL DEFAULT '' ,`password` varchar( 100 ) N
后台用户登录验证功能是很多项目的必须要有的逻辑,也是常见的技术需求 . 要实现这个逻辑首先要有数据库表结构如下: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL DEFAULT '',`password` varchar(100) NOT NULL DEFAULT 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[],},}) } 先忽略掉生成token部分,只看查询数据库用户名密码部分 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 } ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |