如何gin框架中使用中间件进行用户身份校验

本文介绍了如何在Gin框架中创建和应用一个鉴权中间件,通过funcAuthMiddleware()函数处理cookie验证,确保用户身份,然后在路由组中使用.Use()方法集成到GET请求中进行权限控制。
摘要由CSDN通过智能技术生成

 1.首先我们需要写一个鉴权函数,函数的格式为func AuthMiddleware() gin.HandlerFunc,即函数的返回值必须为gin.HandlerFunc,名称可以自定义。

func AuthMiddleware() gin.HandlerFunc {
    //你可以写一些自己鉴权函数的处理逻辑,我在这里简单的举一个获取cookie失败的例子
	return func(c *gin.Context) {
		loginTime, err := c.Cookie("username")
		if err != nil {
			c.JSON(400, gin.H{
				"message": "用户未登录",
				"error":   err.Error(),
			})
			c.Abort() //c.Abort()的作用是直接终止请求的处理,请求处理权不会在传递给接下来的handerfunc函数,直接向前端返回结果
			return
		}

		c.Next() //c.Next()的作用是将请求处理权交给下一个函数,即AuthMiddleware函数处理完后交给handerfunc函数继续处理。
	}
}

2.写好鉴权函数后,我们需要在路由组中使用它,使用authorized.Use(AuthMiddleware())就可以在路由组中使用它

authorized := router.Group("/")
authorized.Use(AuthMiddleware())
{
	authorized.GET("/test1", handerfunc1)
	authorized.GET("/test2", handerfunc2)
}

    

3.这样我们就完成了对用户身份的校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值