Yii 授权
验证用户是否具有足够权限来执行某些操作的过程被称为 授权 。Yii提供了一个ACF(访问控制过滤器),作为一个实现的授权方法 yii\filters\AccessControl 。修改SiteController的behaviors()函数−
在上面的代码中,将ACF作为一个行为附加上去。唯一的属性指定了ACF只会被应用到about和contact动作上。所有其他的动作不受访问控制。规则属性列出了访问规则。所有的访客(拥有“?”角色)都可以访问about动作。所有认证用户(拥有“@”角色)都可以访问contact和about动作。 如果你打开 http://localhost:8080/index.php?r=site/about 链接,你会看到该页面。但如果你打开 http://localhost:8080/index.php?r=site/contact 链接,你会被重定向到登录页面,因为只有认证用户可以访问contact动作。 访问规则支持许多选项:
- allow:定义了这是一个“允许”还是“拒绝”的规则。
- actions:定义此规则匹配的动作。
- controllers:定义此规则匹配的控制器。
- roles:定义此规则匹配的用户角色。有两个特殊的角色:
- ?:匹配一个访客用户。
- @:匹配一个认证用户。
- ips:定义此规则匹配的IP地址。
- verbs:定义此规则匹配的请求方法(POST,GET,PUT等)。
- matchCallback:定义一个PHP可调用函数,用于检查是否应该应用此规则。 - denyCallback:定义一个PHP可调用函数,当此规则拒绝访问时应该调用。 密码
步骤1 – Yii提供了以下方便的方法来处理密码。
步骤2 - 输入 URL http://localhost:8080/index.php?r=site/auth ,你将看到以下内容。