主页 > 知识库 > GO语言gin框架实现管理员认证登陆接口

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

热门标签:谷歌美发店地图标注 地图区域图标注后导出 400开头电话怎样申请 官渡电销外呼管理系统怎么收费 贵州电话智能外呼系统 利用地图标注位置 赤峰电销 江苏呼叫中心外呼系统有效果吗 杭州人工智能电销机器人费用

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

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

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语言gin框架实现管理员认证登陆接口》,本文关键词  语言,gin,框架,实现,管理员,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《GO语言gin框架实现管理员认证登陆接口》相关的同类信息!
  • 本页收集关于GO语言gin框架实现管理员认证登陆接口的相关信息资讯供网民参考!
  • 推荐文章