GO語言gin框架實現管理員認證登陸介面
阿新 • • 發佈:2020-10-28
後臺使用者登入驗證功能是很多專案的必須要有的邏輯,也是常見的技術需求 .
要實現這個邏輯首先要有資料庫表結構如下:
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,false } uRole = models.FindRoleByUserId(info.ID) return info,true }
model裡面
func FindUser(username string) User { var user User DB.Where("name = ?",username).First(&user) return user }
到此這篇關於GO語言gin框架實現管理員認證登陸介面的文章就介紹到這了,更多相關GO語言實現管理員認證登陸介面內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!