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 escape URL编码
Dec 10 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
Laravel 实现关系模型取出需要的字段
Oct 10 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
php 判断数组是几维数组
2013/03/20 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
python编写微信公众号首图思路详解
2019/12/13 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
linux面试题参考答案(8)
2015/08/11 面试题
大学生怎样进行自我评价
2013/12/07 职场文书
西式婚礼证婚词
2014/01/12 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2015年药房工作总结
2015/04/25 职场文书
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers