5

コントローラ プラグインの preDispatch() メソッドのチェックを使用して、単純なZend_Authセットアップを使用して、アプリケーションの 1 つでユーザーを認証しています。匿名ユーザーが移動するとき

/users/view/id/6

たとえば、認証後に上記の URI にリダイレクトする必要があります。

これを行う最善の方法は何ですか?$_SERVER['REQUEST_URI']セッションに保存したくないです。個人的には、Zend Request オブジェクト全体を最もクリーンなソリューションに保存することを考えていますが、これが賢明であるかどうか、これが私がとるべきアプローチであるかどうかはわかりません。

何かご意見は?

4

2 に答える 2

1

同じ問題があり、実際にリクエスト URI をセッション変数に保存しました。特定のシリアル化できないオブジェクトを Zend Request に入れなければ、永続化しても問題ないと思います。

ただし、期待するスループットによって異なります。Web サイトのトラフィックが多い場合、Zend Request のようなオブジェクトをシリアライズすることは最善の策ではないかもしれません。

于 2008-11-12T16:00:41.030 に答える
1

LoginController へのリダイレクトまたは転送は、認証されていないユーザーをログイン ページに誘導する最適な方法ではない可能性があります。代わりに、preDispatch で $request オブジェクトを取得し、次のようにして変更できます。

$request->setActionName('someaction');
$request->setControllerName('somecontroller');

この時点で、元のリクエストは維持されていますが、ページにはログイン ページが表示されています。次に、ログインコントローラーを変更して、現在のリクエストの場所がログインコントローラーであるか、それ以外であるかを確認できます。ログインが成功したときにそれが別のもの (元の要求) である場合は、そのページに送信します。

于 2008-11-12T17:42:52.680 に答える