- 简介
- gin 的中间件
- 创建中间件
- 总结
- 当前部分的代码
简介
开发 web 应用的时候, 很多地方都需要使用中间件来统一处理一些任务, 比如记录日志, 登录校验等.
gin 也提供了中间件功能.
gin 的中间件
在项目创建之初, 就已经导入了一些中间件, 当时没有仔细介绍.
g.Use(gin.Logger())
g.Use(gin.Recovery())
g.Use(middleware.NoCache())
g.Use(middleware.Options())
g.Use(middleware.Secure())
前面两个是 gin 自带的中间件, 分别是日志记录和错误恢复. 后面三个是设置一些 header, 具体是阻止缓存响应, 响应 options 请求, 以及浏览器安全设置.
// 阻止缓存响应
func NoCache() gin.HandlerFunc {
return func(ctx *gin.Context) {
ctx.Header("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate, value")
ctx.Header("Expires", "Thu, 01 Jan 1970 00:00:00 GMT")
ctx.Header("Last-Modified", time.Now().UTC().Format(http.TimeFormat))
ctx.Next()
}
}
// 响应 options 请求, 并退出
func Options() gin.HandlerFunc {
return func(ctx *gin.Context) {
if ctx.Request.Method != "OPTIONS" {