mxc-commons/ mxc-routeguard
Zend Framework 2 模块,为路由提供匿名访问保护。
Requires
- php: >=5.3.3
- zendframework/zend-eventmanager: >=2.1
- zendframework/zend-mvc: >=2.1
- zendframework/zend-servicemanager: >=2.1
- zendframework/zend-stdlib: ~2.1
This package is auto-updated.
Last update: 2024-08-29 03:47:34 UTC
README
版本 1.0.1 由 Frank Hein 和 mxc-commons 团队创建。
MxcRouteGuard 是德国 maxence business consulting gmbh 通过 maxence Open Source Initiative 的一部分。
简介
MxcRouteGuard 限制未认证用户对路由的访问。MxcRouteGuard 默认与 ZfcUser 一起工作,但只要它们提供返回 bool
类型的 public function hasIdentity()
,也可以使用其他身份验证服务(如 Zend\Authentication\AuthenticationService
)。MxcRouteGuard 被设计得非常简单且易于扩展。
要求
- Zend Framework 2(最新主分支)
功能/目标
- 允许/拒绝匿名用户全局访问应用程序路由
- 支持 ZfcUser 注册功能(启用时自动白名单)
- 支持 ZfcUser 重定向功能
安装
主要设置
通过克隆项目
- 将此项目克隆到您的
./vendor/
目录。
使用 composer
-
在您的 composer.json 中添加此项目
"require": { "mxc-commons/mxc-routeguard": "dev-master" }
-
现在运行以下命令,让 composer 下载 MxcRouteGuard:
$ php composer.phar update
安装后
-
在您的
application.config.php
文件中启用它。<?php return array( 'modules' => array( // ... 'MxcRouteGuard', ), // ... );
选项
MxcRouteGuard 模块提供一些选项,允许您快速自定义基本功能。安装 MxcRouteGuard 后,将 ./vendor/maxence/MxcRouteGuard/config/mxcrouteguard.global.php.dist
复制到 ./config/autoload/mxcrouteguard.global.php
并根据需要更改值。
以下选项可用:
- auth_service - 要使用的身份验证服务类名称。如果您想使用自己的身份验证服务而不是默认的 ZfcUser,则很有用。默认是
zfcuser_auth_service
。 - guard_mode - 提供两种模式(
white
,black
)来处理观察到的路由列表(见下文)。在白名单模式下,除了观察到的路由列表中提供的路由之外的所有路由都受到匿名访问的保护。在黑名单模式下,只有观察到的路由列表中提供的路由受到匿名访问的保护。默认是white
。 - observed_routes - 要保护的路线列表,以防止匿名访问(
black
模式)或允许匿名访问(white
模式)。默认:array()
- anonymous_redirect - 如果访问被阻止,匿名用户将被重定向到此处的路由。注意:无论保护模式如何,匿名重定向路由都会自动白名单。默认:
zfcuser/login
- strategy - 默认情况下,MxcRouteGuard 通过重定向尝试访问受保护的路由来重定向匿名用户。如果您想要其他操作而不是重定向,您可以在此处提供替代策略来处理匿名访问。默认:
MxcRouteGuard\Service\Strategy\RedirectStrategy
ZfcUser 支持
如果使用 ZfcUser,并且 ZfcUser enable_registration 标志设置为 true,则 MxcRouteGuard 会自动将 zfcuser/register
白名单,无论保护模式如何。
如果路由被阻止,MxcRouteGuard 将在匿名重定向路由上应用一个 redirect
参数,如果设置了 use_redirect_parameter_if_present
为 true,则 ZfcUser 可以使用该参数。
注意
对于已认证用户,MxcRouteGuard提供了对所有路由的完全访问权限。如果您需要更详细的控制哪些用户可以访问哪些路由,请使用ZfcRbac或BjyAuthorize或类似模块来替代MxcRouteGuard。
MxcRouteGuard的常见用例包括仅需要知道用户身份的演示应用程序。
许可协议
MxcRouteGuard遵循新BSD许可协议发布。请参阅license.txt
。