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 22 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
php 中phar包的使用教程详解
Oct 26 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
ThinkPHP路由详解
2015/07/27 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
jQuery each()小议
2010/03/18 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
python实现扫描ip地址的小程序
2019/04/16 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
用python实现一个简单的验证码
2020/12/09 Python
python time.strptime格式化实例详解
2021/02/03 Python
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
《小熊住山洞》教学反思
2014/02/21 职场文书
酒店管理求职信范文
2014/04/06 职场文书
应聘教师求职信
2014/07/19 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
考察邀请函范文
2015/01/31 职场文书
大学生学年个人总结
2015/02/15 职场文书
学校百日安全活动总结
2015/05/07 职场文书
功夫熊猫观后感
2015/06/10 职场文书
结婚纪念日感言
2015/08/01 职场文书
消防演习感想
2015/08/10 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Ajax常用封装库——Axios的使用
2021/05/08 Javascript