ZF2-仅在经过身份验证后访问模块的路由

时间:2014-04-06 09:02:27

标签: php authentication routing zend-framework2

Zend MVC application上有两个模块。我想仅在用户通过admin身份验证时才设置管理模块的路由。

在发送URL时,是否有任何通用方法可以知道谁经过身份验证?如果不是管理员将他重新安排到错误页面。

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我建议您使用bjyauthorize而不是自己动手。

https://github.com/bjyoungblood/BjyAuthorize

答案 1 :(得分:0)

您可以使用mvc event喜欢"发送"。在Module.php的bootstrap-method(例如)中监听此事件,并调用处理身份验证/重定向的自定义方法。所以,这里有一个小例子:也许,您还可以查看身份验证服务。

/**
* /Admin/src/Admin/Module.php (e.g.)
*/
class Module
{
   public function onBootstrap(MvcEvent $e) {
     /* @var $sharedEventManager \Zend\EventManager\SharedEventManager */
     $sharedEventManager = $e->getApplication()->getEventManager()->getSharedManager();
     $sharedEventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'doAuthentication'),1); // 1 is priority
   }

   /**
    * authentication processing
    */
   public function doAuthentication($event) {
      // your logic....
   }
}