beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)
pattren 路由规则,可以根据一定的规则进行路由,如果你全匹配可以用
position执行Filter的地方,五个固定参数如下,分别表示不同的执行过程时间点
BeforeStatic 静态地址之前
BeforeRouter 寻找路由之前
BeforeExec 找到路由之后,开始执行响应的Controller之前
AfterExce 执行完Controller逻辑之后执行的过滤器
FinishRouter 执行逻辑之后执行的过滤器
var BeforeExecFunc = func(ctx *context.Context) { userName := ctx.Input.Session("userName") if userName == nil{ ctx.Redirect("/login", 302) } ) beego.InsertFilter("/login", beego.BeforeExec, BeforeExecFunc)
注意:导包要导入beego的context import “github.com/astaxie/beego/context” func init() { beego.InsertFilter("?=/Article/*", beego.BeforeRouter, FilterFunc) } var FilterFunc = func(ctx *context.Context)() { userName := ctx.Input.Session("userName") if userName == nil { ctx.Redirect() } }
过滤器,过滤出需要验证登陆的路由,验证session。