欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GO 路由过滤器

程序员文章站 2022-03-06 12:31:51
...

也就是说对于所有的模式,在路由之前允许跨域请求

beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
        AllowAllOrigins:  true,
        AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
        AllowHeaders:     []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
        ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
        AllowCredentials: true,
    }))


参数说明:
AllowAllOrigins 允许全部来源设置为true则所有域名都可以访问本网站接口,可以将此配置换成为AllowOrigins:[“允许访问的域名”]
AllowMethods :允许的请求类型
AllowHeaders:允许的头部信息
ExposeHeaders:允许暴露的头信息
AllowCredentials:如果设置,允许共享AuthTuffic证书,如Cookie

 

beego.InsertFilter过滤器

beego.InsertFilter过滤器是为某些router提供过滤功能,可以设置在某个路由访问时进行额外的操作。通过参数设置可以设置过滤器执行的时刻。

如下所示beego.InsertFilter有一下几个参数: InsertFilter(pattern string, pos int, filter FilterFunc, params …bool)

pattern:路由规则,过滤器作用的路由

pos : 过滤器执行的时刻,有以下5种

beego.BeforeStatic

beego.BeforeRouter 访问路由之前

beego.BeforeExec 访问路由之后执行controller之前

beego.AfterExec 执行controller之后调用

beego.FinishRouter 结束路由之后调用

filter:过滤器函数,按照上述规定的时刻进行的过滤的相应逻辑。