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中array_merge与array+array的区别
Jun 21 PHP
关于PHP语言构造器介绍
Jul 08 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
帝国cms目录结构分享
Jul 06 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 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循环获取GET和POST值的代码
2008/04/09 PHP
php 魔术函数使用说明
2010/02/21 PHP
php生成RSS订阅的方法
2015/02/13 PHP
php探针不显示内存解决方法
2019/09/17 PHP
对之前写的jquery分页做下升级
2014/06/19 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
vue跨域解决方法
2017/10/15 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
树莓派实现移动拍照
2019/06/22 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
django中嵌套的try-except实例
2020/05/21 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
法学专业个人求职信
2013/09/26 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
财务出纳岗位职责
2014/02/03 职场文书
读书月活动方案
2014/05/22 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书