DDR爱好者之家 Design By 杰米

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

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

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
}
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。