beego

自定义过滤器

2019-05-06  本文已影响0人  寒云暮雨

有的时候我们需要进行权限判断,我们可以定义过滤器进行限制
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 执行完逻辑之后执行的过滤器

代码示例中,我在入口进行了过滤,同理,我们利用这种方法进行路由分组,根据路由前缀进行过滤判断

上一篇 下一篇

猜你喜欢

热点阅读