最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年10月27日 08:30:33   作者:陶士涵  
這篇文章主要介紹了GO語(yǔ)言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

后臺(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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go?Redis客戶端使用的兩種對(duì)比

    Go?Redis客戶端使用的兩種對(duì)比

    這篇文章主要為大家介紹了Go?Redis客戶端使用對(duì)比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦?wèn)題及處理方法

    VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦?wèn)題及處理方法

    這篇文章主要介紹了VSCode Golang dlv調(diào)試數(shù)據(jù)截?cái)鄦?wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程

    Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程

    Gogland 是 JetBrains 公司推出的Go語(yǔ)言集成開發(fā)環(huán)境。這篇文章主要介紹了Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • go語(yǔ)言編程之美自定義二進(jìn)制文件實(shí)用指南

    go語(yǔ)言編程之美自定義二進(jìn)制文件實(shí)用指南

    這篇文章主要介紹了go語(yǔ)言編程之美自定義二進(jìn)制文件實(shí)用指南
    2023-12-12
  • Go語(yǔ)言中的流程控制結(jié)構(gòu)和函數(shù)詳解

    Go語(yǔ)言中的流程控制結(jié)構(gòu)和函數(shù)詳解

    這篇文章主要介紹了Go語(yǔ)言中的流程控制結(jié)構(gòu)和函數(shù)詳解,本文詳細(xì)講解了if、goto、for、switch等控制語(yǔ)句,同時(shí)對(duì)函數(shù)相關(guān)知識(shí)做了講解,需要的朋友可以參考下
    2014-10-10
  • Go語(yǔ)言中Slice常見陷阱與避免方法詳解

    Go語(yǔ)言中Slice常見陷阱與避免方法詳解

    這篇文章主要為大家詳細(xì)介紹的是 Go 語(yǔ)言中的 Slice 的常見陷阱以及如何避免這些錯(cuò)誤,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-02-02
  • 一文教你如何快速學(xué)會(huì)Go的struct數(shù)據(jù)類型

    一文教你如何快速學(xué)會(huì)Go的struct數(shù)據(jù)類型

    結(jié)構(gòu)是表示字段集合的用戶定義類型。它可以用于將數(shù)據(jù)分組為單個(gè)單元而不是將每個(gè)數(shù)據(jù)作為單獨(dú)的值的地方。本文就來(lái)和大家聊聊Go中struct數(shù)據(jù)類型的使用,需要的可以參考一下
    2023-03-03
  • web項(xiàng)目中g(shù)olang性能監(jiān)控解析

    web項(xiàng)目中g(shù)olang性能監(jiān)控解析

    這篇文章主要為大家介紹了web項(xiàng)目中g(shù)olang性能監(jiān)控詳細(xì)的解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • go gin中間件關(guān)于 c.next()、c.abort()和return的使用小結(jié)

    go gin中間件關(guān)于 c.next()、c.abort()和return的使用小結(jié)

    中間件的執(zhí)行順序是按照注冊(cè)順序執(zhí)行的,中間件可以通過(guò) c.abort() + retrurn 來(lái)中止當(dāng)前中間件,后續(xù)中間件和處理器的處理流程,?這篇文章給大家介紹go gin中間件關(guān)于 c.next()、c.abort()和return的使用小結(jié),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Goland項(xiàng)目使用gomod配置的詳細(xì)步驟

    Goland項(xiàng)目使用gomod配置的詳細(xì)步驟

    Goland是一個(gè)用于Go語(yǔ)言開發(fā)的IDE,Goland的項(xiàng)目結(jié)構(gòu)與Go語(yǔ)言的項(xiàng)目結(jié)構(gòu)相似,下面這篇文章主要給大家介紹了關(guān)于Goland項(xiàng)目使用gomod配置的詳細(xì)步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評(píng)論

崇礼县| 米脂县| 龙胜| 阿克苏市| 桐柏县| 大英县| 临沧市| 台东县| 靖边县| 聊城市| 卫辉市| 兰考县| 武城县| 延寿县| 凌源市| 延庆县| 德钦县| 信阳市| 崇礼县| 漳浦县| 张北县| 临泽县| 蕉岭县| 厦门市| 康保县| 穆棱市| 乡城县| 淮安市| 广南县| 八宿县| 黄龙县| 敖汉旗| 阳江市| 松滋市| 乐东| 连江县| 卢氏县| 斗六市| 仙居县| 临高县| 昌平区|