zend验证特定控制器的用户?

时间:2012-07-25 03:32:24

标签: php zend-framework

我想知道如何验证特定控制器的用户,以便在访问控制器资源之前我们可以检查特定用户是否经过身份验证?

2 个答案:

答案 0 :(得分:1)

你应该看一下Zend_Auth和Zend_Acl Component。

Zend_Auth is responsible for assigning and managing authentication of the user.

Zend_Acl is responsible for managing different permissions and roles for different resources.

这是教程,解释如何实现Zend_Auth。

http://akrabat.com/zend-auth-tutorial/

以下教程解释了Zend_Auth / Zend_Acl

http://devzone.zend.com/844/zend_acl-zend_auth-example-scenario/

答案 1 :(得分:0)

Lets说,对于控制器文件夹中的特定控制器,我们有CashoutController。在用户访问此控制器之前,我们将使用自定义库对用户进行如下身份验证。

<?php
 class CashoutController extends Zc_Controller_Action_User
 {
  public function init()
  {
    /* Initialize action controller here */
    parent::init();
  }
    // rest code goes here
 }

现在我们定义了新的库名Zc

   <?php
   class Zc_Controller_Action_User extends Zc_Controller_Action
{ 
public function init()
{
    parent::init();
    $this->validateAccess();
}

private function validateAccess()
{
    $auth = Zend_Auth::getInstance();

    if (is_null($auth->getIdentity())) {
        $this->_helper->redirector('index', 'index');
    }
}
    }

我们将控制器动作库定义为

<?php

class Birdtoldme_Controller_Action extends Zend_Controller_Action
{

 }

希望这对你有所帮助。