認証を処理するコントローラープラグインを作成しました。ユーザーがログインせずにページにアクセスしようとすると、アクセスしようとしていたページのルートが保存され、ログイン ページに転送され、ユーザーがログインすると、アクセスしようとしていた場所にリダイレクトされます。 .
ただし、ユーザーがログアウト中に存在しないページにアクセスしようとすると、サインイン フォームに転送されますが、ユーザーがサインインするとエラーが発生します。
ユーザーがサインインする前に 404 エラーを表示するにはどうすればよいですか? dispatchLoopStartup() 内でルートが有効かどうかを検出する必要があると思います。それ、どうやったら出来るの?または、これを行う他の方法はありますか?
class Chronos_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$request->setParam('userName', $auth->getIdentity());
} else {
$request->setParam('origModule', $request->getModuleName())
->setParam('origController', $request->getControllerName())
->setParam('origAction', $request->getActionName())
->setModuleName('default')
->setControllerName('sign')
->setActionName('in');
}
}
}