首页 > 编程语言 > GO语言gin框架实现管理员认证登陆接口
2020
10-28

GO语言gin框架实现管理员认证登陆接口

后台用户登录验证功能是很多项目的必须要有的逻辑 , 也是常见的技术需求 .

要实现这个逻辑首先要有数据库表结构如下:

CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL DEFAULT '',
 `password` varchar(50) NOT NULL DEFAULT '',
 `nickname` varchar(50) NOT NULL DEFAULT '',
 `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `deleted_at` timestamp NULL DEFAULT NULL,
 `avator` varchar(100) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`),
 KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

gin框架路由入口去获取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(200, gin.H{
      "code": 400,
      "msg": "验证失败",
    })
    return
  }
  userinfo["name"] = info.Name
  userinfo["kefu_id"] = info.ID
  userinfo["type"] = "kefu"
  if uRole.RoleId != 0 {
    userinfo["role_id"] = uRole.RoleId
  } else {
    userinfo["role_id"] = 2
  }
  userinfo["create_time"] = time.Now().Unix()

  token, _ := tools.MakeToken(userinfo)
  userinfo["ref_token"] = true
  refToken, _ := tools.MakeToken(userinfo)
  c.JSON(200, gin.H{
    "code": 200,
    "msg": "验证成功,正在跳转",
    "result": gin.H{
      "token":    token,
      "ref_token":  refToken,
      "create_time": userinfo["create_time"],
    },
  })
}

先忽略掉生成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, uRole, false
  }
  uRole = models.FindRoleByUserId(info.ID)

  return info, uRole, true
}

model里面

func FindUser(username string) User {
  var user User
  DB.Where("name = ?", username).First(&user)
  return user
}

到此这篇关于GO语言gin框架实现管理员认证登陆接口的文章就介绍到这了,更多相关GO语言实现管理员认证登陆接口内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

编程技巧