中间件
中间件介绍
Gin框架允许开发者在处理请求的过程中,加入用户自己的钩子(Hook)函数。
这个钩子函数就叫中间件,中间件适合处理一些公共的业务逻辑
比如 登录认证、权限校验 、数据分页、记录日志、耗时统计等。
全局中间件
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func MiddleWare() gin.HandlerFunc {
return func(c *gin.Context) {
fmt.Println("我是一个全局中间件")
}
}
func main() {
r := gin.Default()
r.Use(MiddleWare())
r.GET("/hello", func(c *gin.Context) {
fmt.Println("执行了Get方法")
c.JSON(200, gin.H{"msg": "success"})
})
r.Run()
}
局部中间件
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func MiddleWare() gin.HandlerFunc {
return func(c *gin.Context) {
fmt.Println("这里可以做一些身份验证等")
}
}
您暂时无权查看此隐藏内容!
Next()
方法
在中间件中调用 next()
方法,会从next()
方法调用的地方跳转到视图函数
视图函数执行完成再调用next()
方法
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
您暂时无权查看此隐藏内容!
/*
开始执行中间件
执行了Get方法
视图函数执行完成后再调用next()方法
*/
实现token认证
http://127.0.0.1:8080/index index #首页无需token直接访问
http://127.0.0.1:8080/home #home家目录需要对token进行验证,验证通过才可访问
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
您暂时无权查看此隐藏内容!
测试效果