beego 会话控制 之过滤器功能

实现用户浏览部分页面未登录跳转到登录页面

https://beego.me/docs/mvc/controller/filter.md

beego 支持自定义过滤中间件,例如安全验证,强制跳转等。

过滤器函数如下所示:

beego.InsertFilter(pattern string, position int, filter FilterFunc, params ...bool)

InsertFilter 函数的三个必填参数,一个可选参数

- pattern 路由规则,可以根据一定的规则进行路由,如果你全匹配可以用 *

- position 执行 Filter 的地方,五个固定参数如下,分别表示不同的执行过程
    1. BeforeStatic 静态地址之前    
    2. BeforeRouter 寻找路由之前
    3. BeforeExec 找到路由之后,开始执行相应的 Controller 之前
    4. AfterExec 执行完 Controller 逻辑之后执行的过滤器
    5. FinishRouter 执行完逻辑之后执行的过滤器

- filter filter 函数 type FilterFunc func(*context.Context)

判断后台每个页面都需要登录才能访问
配置路由,执行路由过滤

router.go

	"github.com/astaxie/beego/context"
)
var FilterUser = func(ctx *context.Context) {
	userName := ctx.Input.Session("Name")
	if userName == nil {
		ctx.Redirect(302, "/login")
	}
}
func init() {
	// 验证用户是否已经登录
	beego.InsertFilter("/center/*",beego.BeforeRouter,FilterUser)
	// 在所有需要验证的路由前 添加/center/
	beego.Router("/center/showarticle", &controllers.ArticleController{}, "get:ShowArticle")
}
控制器 和 html 页面也要做修改,修改成重新设计的路由地址
## 控制器示例
	this.Redirect("/center/showarticle", 302)
	
## html页面示例	
	<a href="/center/showarticle" class="icon031">文章列表</a></li>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值