1

Zend Framework では
、ユーザーがログインしていない場合にログイン後のページへのアクセスを制限するより良い方法はありますか
?
ログイン後のすべてのページで使用されています)。

Zend Frameworkでは、zend_authのhasIdentityメソッドを使用して確認できますが、
すべてのアクション内で確認したくありません.私が考えている別の方法は、プラグインを作成し
てrouteshutdownイベントにフックし、コントローラーとアクション
名をフェッチした後ですrequest オブジェクトから、ユーザーをリダイレクトするかどうかを決定できます。

Zendフレームワークでそれを実装するための良い方法を提案してください

4

1 に答える 1

2

通常はコントローラー プラグインを作成し、それをフロント コントローラーに追加します。このようにして、必要な場所でディスパッチおよびルート プロセスをインターセプトし、適切なページへのリダイレクトを発行できます。

class Your_Controller_Plugin_Authcheck extends Zend_Controller_Plugin_Abstract
{
}

ブートストラップ クラス:

protected function _initFrontControllerPlugins()
{
    $this->bootstrap(array('AuthcheckPlugin', 'FrontController'));

    $front = $this->getResource('FrontController');
    $front->registerPlugin($this->getResource('AuthcheckPlugin'));
}

protected function _initAuthcheckPlugin()
{
    $plugin = new Your_Controller_Plugin_Authcheck();

    return $plugin;
}

ところで: これは Zend Framework 1 です。2 でも同じように動作する可能性がありますが、既に使用している場合は少し変更があると思います。

于 2012-10-03T12:01:51.650 に答える