zucchi / security
提供并允许管理 Zucchi ZF2 模块的安全功能的模块
Requires
- php: >=5.4.1
- zucchi/admin: dev-master
- zucchi/doctrine: dev-master
- zucchi/user: dev-master
- zucchi/zucchi: dev-master
Suggests
- zendframework/zendservice-recaptcha: Recaptcha service for use with Recaptcha Plugin
This package is not auto-updated.
Last update: 2024-09-14 12:22:32 UTC
README
提供并允许管理 Zucchi ZF2 模块的安全功能的模块
安装
在您的 ZF2 骨架应用程序的根目录下运行
./composer.phar require zucchi/security
授权
此模块包含一个基于 Zend\Permissions\Acl 的授权层。
模块将根据当前用户可用的角色构建一个自定义的 ACL。如果没有用户数据可用,它将默认为为“访客”角色构建一个 ACL。
在每个请求中,它将测试 ACL 以查看当前用户是否有权访问指定的“路由”。
如果当前用户未授权,它将触发未经授权的视图策略并显示登录/注销表单。
辅助工具
作为模块的一部分,您有一个视图和控制器辅助工具。"$this->can(privilege, $resource)" 代理到权限服务方法 "can($privilege, $resource)"
@example : $this->can('edit', 'module:ZucchiUser');
测试 ACL 以查看当前用户分配的任何角色是否允许对 ZucchiUser 模块执行编辑权限。
配置
当将模块添加到您的项目时,需要将其注册到 ZucchiSecurity 模块。
您可以通过添加以下内容(至少)到您的配置来实现这一点。
'ZucchiSecurity' => array( 'permissions' => array( 'resources' => array( 'route' =>array( 'MyModuleRouteKey', // the route key used for your module ), ), 'rules' => array( array( 'action' => 'allow' 'role' => 'guest', 'resource' => 'route:MyModuleRouteKey', 'privileges' => array('view'), ), ) ), ),
有关配置不同选项的详细说明,请参阅 ./config/zucchisecurity.access.local.php.dist
身份验证
该模块包含一个内置的身份验证层,当当前用户未授权查看当前路由时将触发。
此身份验证依赖于 ZucchiUser 模块进行用户管理
扩展
可以通过附加以下 'ZucchiSecurity' 事件轻松扩展身份验证过程
const EVENT_LOGIN_FORM_BUILD = 'zucchisecurity.form.login.build'; const EVENT_LOGOUT_FORM_BUILD = 'zucchisecurity.form.logout.build'; const EVENT_AUTHENTICATE = 'zucchisecurity.authenticate'; const EVENT_AUTH_POST = 'zucchisecurity.authenticate.post';
zucchisecurity.form.???.build
这些事件允许您扩展用于登录和注销的表单
zucchisecurity.authenticate
此事件允许您添加自己的身份验证逻辑的触发器。
在身份验证时,您必须返回 ZucchiSecurity\Authentication\Result 或兼容接口的实例。
N.B. 不要忘记在成功身份验证时停止事件的传播。
zucchisecurity.authenticate.post
此事件允许您挂钩到身份验证的结果。
一个很好的例子可以在 ZucchiUser 模块中找到,该模块挂钩到此事件并创建成功登录的记录。
路线图
- 实现注册功能