• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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语言实现管理员认证登陆接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 一篇文章带你玩转go语言的接口
    • 分析Go语言接口的设计原则
    • Go语言-为什么返回值为接口类型,却返回结构体
    • go语言实现接口查询
    • Go语言使用swagger生成接口文档的方法
    • Go语言的接口详解
    上一篇:利用go-zero在Go中快速实现JWT认证的步骤详解
    下一篇:详解golang开发中http请求redirect的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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