上一篇文章搭建好了管理后台界面,这一篇文章就要控制后台管理界面的访问权限,鉴于上一篇文章只写了一节的教训,这篇文章除了知识点之外,还会添加业务逻辑图谱,供大家在掌握知识之后,能够思路更加清晰的编写代码
0.知识点
beego session
conf/app.conf中:session=true
c.SetSession("userName",userName) :无返回值(ctrl点击查看)
userName:=c.GetSession("userName")
c.DelSession("userName")
过滤器:
image.png
在路由文件中插入过滤器,并指定过滤函数和过滤时间
image.png
image.png
其中第一个参数用于指定需要过滤的路由
第二个参数用于指定过滤函数执行时期
第三个参数用于设置过滤函数
一.业务逻辑
二.路由过滤-解决问题
两个问题:
1.不能实现登录才能访问
2.不能实现用户退出功能
解决方法:
在服务端通过session记录用户登录状态
三.路由过滤-记录用户登录状态
1.在登录控制器保存用户名到服务器
2.在主页控制器接收服务器保存的userName
并回传值到首页
3.在conf中设置sessionon=true
确保会话正确使用
四.路由过滤-退出登录
1.设置logout路由
2.在登录控制器中编写Logout函数
3.在layout.html中设置退出登录的跳转界面
五.路由过滤-访问权限设置
1.在route中插入过滤器
2.在layout.html中修改跳转界面地址
pattern 路由规则,可以根据一定的规则进行路由,如果你全匹配可以用 *
position 执行 Filter 的地方,五个固定参数如下,分别表示不同的执行过程
BeforeStatic 静态地址之前
BeforeRouter 寻找路由之前
BeforeExec 找到路由之后,开始执行相应的 Controller 之前
AfterExec 执行完 Controller 逻辑之后执行的过滤器(路由对应的控制器执行完毕之后执行)
FinishRouter 执行完逻辑之后执行的过滤器(路由对应的控制器执行完毕之后执行)
filter filter 函数 type FilterFunc func(*context.Context)
By 极客江南