私は何を求めているのかというと多くの関連記事がありますが、長時間の検索では私が探していたものを見つけることができませんでした。どこかに存在する。リクエストをリダイレクトするとZendアプリケーションのキャッチオールコントローラが永久にループすることなく
私の目標 - Zend Appへのすべてのリクエストは、preDispatchプラグインを経由して、既存の認証情報が要求された操作に十分かどうかを判断するカスタムAuthコントローラに渡す必要があります。 'Sufficient'はアプリのロジックに依存するので、なぜコントローラ+モデルレベルでこれをやりたいのですか?それらが十分であれば、彼らは指定されたコントローラ+アクションに沿って元の要求を送信します。
現在私はpreDispatchで設定された認証カスタムプラグインを使用して、POSTされた認証資格情報(ログインしている場合)を確認し、すべての場合、プラグインは元の要求を保存し、 「ラ、私の認証コントローラへの)Dかどうか:
$request->setModuleName('default')
->setControllerName('auth')
->setActionName('check')
->setParam('oreq',$request->getParams());
私の問題/質問は、私のauth-以内ということです>決定がなされた後、私はリダイレクトを実行すべきか、アクションを確認しますか?私が使用している場合:
$this->_helper->redirector($or['action'], $oreq['controller']);
これらの要求がpreDispatchプラグインを再び通過すると、私は明らかに無限ループに陥ります。もちろん、Authプラグインがそのような要求を無視するようにリダイレクトで何かを渡すこともできますが、これは明らかにセキュリティホールです。 md5ハッシュを生成して格納することを考えてセッションに格納し、それをエスケープパラメータとして渡すことを考えましたが、それは少しスケッチしたようです。
もっと良いアイデアはありますか?おそらく、Zend Appの標準的なプレディスパッチルーチンを経由しないリダイレクト方法でしょうか?前もって感謝します!
あなたはスターです。多くの感謝です。 – Dan
fyi、_forwardはディスパッチを介して流れます。 – Dan