主頁(yè) > 知識(shí)庫(kù) > GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口

GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口

熱門標(biāo)簽:谷歌美發(fā)店地圖標(biāo)注 地圖區(qū)域圖標(biāo)注后導(dǎo)出 400開頭電話怎樣申請(qǐng) 官渡電銷外呼管理系統(tǒng)怎么收費(fèi) 貴州電話智能外呼系統(tǒng) 利用地圖標(biāo)注位置 赤峰電銷 江蘇呼叫中心外呼系統(tǒng)有效果嗎 杭州人工智能電銷機(jī)器人費(fèi)用

后臺(tái)用戶登錄驗(yàn)證功能是很多項(xiàng)目的必須要有的邏輯 , 也是常見的技術(shù)需求 .

要實(shí)現(xiàn)這個(gè)邏輯首先要有數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:

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的數(shù)據(jù)

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": "驗(yàn)證失敗",
    })
    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": "驗(yàn)證成功,正在跳轉(zhuǎn)",
    "result": gin.H{
      "token":    token,
      "ref_token":  refToken,
      "create_time": userinfo["create_time"],
    },
  })
}

先忽略掉生成token部分 ,只看查詢數(shù)據(jù)庫(kù)用戶名密碼部分

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
}

到此這篇關(guān)于GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口的文章就介紹到這了,更多相關(guān)GO語(yǔ)言實(shí)現(xiàn)管理員認(rèn)證登陸接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 一篇文章帶你玩轉(zhuǎn)go語(yǔ)言的接口
  • 分析Go語(yǔ)言接口的設(shè)計(jì)原則
  • Go語(yǔ)言-為什么返回值為接口類型,卻返回結(jié)構(gòu)體
  • go語(yǔ)言實(shí)現(xiàn)接口查詢
  • Go語(yǔ)言使用swagger生成接口文檔的方法
  • Go語(yǔ)言的接口詳解

標(biāo)簽:泰安 保定 河池 武漢 黔西 鷹潭 宜春 松原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口》,本文關(guān)鍵詞  語(yǔ)言,gin,框架,實(shí)現(xiàn),管理員,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章