H3权限认证机制采用了AOP(面向切面)的方式
实现授权和认证需要做2方面的工作:
1、在usr/auth下建立认证器,实现Lib\IBase\IAuth接口
示例:实现一个叫AdminAuth的认证器
<?php namespace Auth; use Lib; class AdminAuth implements Lib\IBase\IAuth { static function valid($act) { //验证是否通过,返回值是true或false,true则执行allow(),false则执行deny() } static function allow() { //TODO:认证通过,继续下一步想要的操作 } static function deny() { //TODO:认证失败跳转到其他页面 } } ?>2、配置usr目录下的auth.ini认证器配置文件
示例:
;说明:认证器配置文件 ;请严格遵循如下格式进行配置: ;auth['area/controller/action'] = "Lib\IBase\IAuth接口类" ;*号代表通配符,键值要求必须是3元组格式(*/*/*) auth['Admin/*/*'] = "AdminAuth"上述示例的意思是使用 AdminAuth认证器对area Admin下的所有控制器和方法进行授权认证检测
其他示例:
auth['Admin/Home/*'] //作用范围是area Admin下的控制器Home下的所有action
auth['Admin/Home/Index'] //作用范围仅仅针对Index这个action
优先级说明:
按如下顺序进行串行认证
action->controller->area
任何的中断跳转处理都会导致后续的认证器放弃工作