有的时候我们需要进行权限判断,我们可以定义过滤器进行限制
beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)
var FilterUser = func(ctx *context.Context) {
s := ctx.Request.RequestURI
fmt.Println(s)
}
func main() {
_ = orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/shenshen?charset=utf8", 30)
_ = orm.RunSyncdb("default", false, true)
//o := orm.NewOrm()
//_ = o.Using("default") //可以不指定
beego.InsertFilter("/id/:id([0-9]+)",
beego.BeforeRouter, FilterUser)
beego.Run()
}
顾虑的地方
BeforeStatic 静态地址之前
BeforeRouter 寻找路由之前
BeforeExec 找到路由之后,开始执行相应的 Controller 之前
AfterExec 执行完 Controller 逻辑之后执行的过滤器
FinishRouter 执行完逻辑之后执行的过滤器
代码示例中,我在入口进行了过滤,同理,我们利用这种方法进行路由分组,根据路由前缀进行过滤判断
网友评论