栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go语言用cookie实现登录(gin+gorm)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go语言用cookie实现登录(gin+gorm)

go语言用cookie实现登录(gin+gorm) 第一步数据库验证表单提交的用户名和密码是否正确
//获取表单提交的数据进行登录
name := c.PostForm("name")
password := c.PostForm("password")
//每个人的验证都基本不同,代码就省略了
//将获得的数据进行数据库验证,如果验证成功,则进行第二步在验证成功的地方设置cookie

//下方代码为我验证成功的地方,设置cookie
if admin.Password == password {
		c.SetCookie("abc", 123, 3600, "/", "localhost", false, true)
		// 返回信息登录成功
		c.String(http.StatusOK, "Login success!")
	}
第二步设置cookie
// 给客户端设置cookie
// maxAge int, 单位为秒 
// path,cookie所在目录
// domain string,域名
// secure 是否智能通过https访问
// httpOnly bool  是否允许别人通过js获取自己的cookie
c.SetCookie("abc", "123", 3600, "/", "localhost", false, true)

参数中第一个和第二个可以自己定义(“abc”, 123)

第三步设置中间件
func AuthMiddleWare() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 获取客户端cookie并校验
		if cookie, err := c.Cookie("abc"); err == nil {
			if cookie == "123" {
				c.Next()
				return
			}
		}
		// 返回错误
		c.JSON(http.StatusUnauthorized, gin.H{"error": "err"})
		// 若验证不通过,不再调用后续的函数处理
		c.Abort()
		return
	}
}

注意:abc 和123 要与setCookie中的值对应

第四步使用中间件
//创建路由
	studentGroup := r.Group("/student")

	{
		//学生登录
		studentGroup.POST("/login", register_login.StudentLogin)
		//调用中间件
		studentGroup.Use(controller.AuthMiddleWare())
		//获取个人信息
		studentGroup.GET("/student1/:stu/:sno", controller.GetStudent)
		//更新自己局部信息
		studentGroup.PUT("/student2/:stu/:sno", controller.UpdateStudent)
		//获取分数
		studentGroup.GET("/student3/:stu", controller.GetScore)
	}

上面是我创建的学生路由组

  • 通过这个实现登录
    studentGroup.POST("/login", register_login.StudentLogin)
  • 使用中间件
    studentGroup.Use(controller.AuthMiddleWare())
  • 登录成功后网页里就保存了cookie
  • 就可以进行下面的操作
    //获取个人信息
    studentGroup.GET("/student1/:stu/:sno", controller.GetStudent)
    //更新自己局部信息
    studentGroup.PUT("/student2/:stu/:sno", controller.UpdateStudent)
    //获取分数
    studentGroup.GET("/student3/:stu", controller.GetScore)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号