Yii2针对游客、用户防范规则和限制的解决方法分析


Posted in PHP onOctober 08, 2016

本文实例分析了Yii2针对游客、用户防范规则和限制的解决方法。分享给大家供大家参考,具体如下:

最近在用Yii2.0做项目,其中需要实现一个功能:没有登录不能访问部分页面,即游客身份访问限制。查了半天资料,终于找到答案。解决方法如下:

在access里,access即访问的意思,其中有个配置项:

'only'=>['login','about']

这是什么意思呢,意思是仅仅在login、about两个action内起作用,即当action 是login、about时,会进入rules里做下一步验证。

但是 我们想除了登录、注册以外其他action均不允许访问怎么办呢?还有其他的配置,我们把only 改成 except,什么意思呢,是除去什么什么之外的意思,就是说对除了 login、signup以外的action起作用。接下来,在:

rules=>[['action'=>['login','signup'],'allow'=>true,'roles'=>['?']]]

里,rules就是规则,这里边可以写多条,actions是指规则针对哪个action,allow指是否允许访问,'roles'这个字段是关键的,这是允许访问的角色。其中?代表游客,@代表已登录的用户

public function behaviors()
{
 return [
  'access' => [
   'class' => AccessControl::className(),
   'except' =>['login','signup'],
   'rules' => [
    [
     'actions' => ['login','signup'],
     'allow' => true,
     'roles' => ['?'],
    ],
   ],
  ],
  'verbs' => [
   'class' => VerbFilter::className(),
   'actions' => [
    'logout' => ['post'],
   ],
  ],
 ];
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
帖几个PHP的无限分类实现想法~
Jan 02 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
PHP中的self关键字详解
Jun 23 PHP
零基础php编程好学吗
Oct 11 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 #PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 #PHP
PHP反射API示例分享
Oct 08 #PHP
验证坐标在某坐标区域内php代码
Oct 08 #PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 #PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 #PHP
php文件类型MIME对照表(比较全)
Oct 07 #PHP
You might like
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
php类的定义与继承用法实例
2015/07/07 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
网页右下角弹出窗体实现代码
2014/06/05 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
python 回溯法模板详解
2020/02/26 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
美容师的职业规划书
2013/12/27 职场文书
个人求职信范文分享
2014/01/06 职场文书
争先创优活动总结
2014/08/27 职场文书
员工自我评价范文
2015/03/11 职场文书
初中语文教学研修日志
2015/11/13 职场文书
听课评课活动心得体会
2016/01/15 职场文书
合同补充协议书
2016/03/24 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js