2012-02-24 56 views
0

私は2つのアプリケーションがあります。 MyAppとMainApp。 MyAppは、MainAppによって「制御」されます。 MyAppはZendで作成されています。ログイン後にリダイレクトして投稿を保存する

MainAppは、MyAppに対してさまざまな要求を行います。例えば。 MyApp/index/create、/ copy、/ deleteなど MainAppは、この要求を行うにはMyAppにログインする必要があります。

MainApp(または実際にMainAppを使用しているユーザー)がMyAppにログインしていない場合、彼は気付かずに自動的にバックグラウンドでログインします。このため、MainAppからMyAppへの各リクエストには、ポスト変数としてのクレデンシャルが含まれます。だから、

、少し例:

MainAppには、MyAppのにログインしていません。

は要求: 1. MainAppに - >のMyApp /インデックス/ 2. MyAppのプラグインを作成します。彼は、ログインしています? ...いいえ、MyApp/index/loginにリダイレクトします 3. MyApp/login/index、ログインが正常に終了し、MyApp/index/createにリダイレクト

これは基本的に複雑ではありません。気にする2つの問題があります:最後の要求からの起点の位置とポストヴァーズを知る。

問題1 - 最終リクエスト:Zend Registryに書き込むか、リダイレクト時にGETパラメータとして渡すことができます。 問題2 - ログインアクションに資格情報を渡す:それらをgetパラメーターとしても追加できますか?何とか投稿のリダイレクトを行うことはできますか?たぶん私は要求objを保存し、それを思い出すためにログインアクションに渡すことができますか?たぶん、私もレジストリに投稿物を書く必要がありますか?

Atm、ログインはセキュリティ保護されていないため、まだ追加されていません。安全にするために気にする必要があるものはありますか?

ありがとうございました $ _redirect();

+1

あなたはリクエスト間の記憶域として 'Zend_Registry'を使いたいようです。この方法では動作しません.ZFアプリケーションでの1回のリクエストの存続期間中にのみデータを保存します。 – bububaba

+1

また、MainAppとMyAppはどのように通信しますか? AJAX(クライアント(ユーザ) - >サーバ(MyApp))または 'curl'(サーバ(MainApp) - >サーバ(MyApp) – bububaba

+0

Atm、私はちょうどプラグインがログインしていないかどうかをチェックするプラグインを作成しましたが、プラグインがログインしていません。しかし、これが悪い考えであればわかりません。両方のアプリは同じサーバーにあります。私は決してカールを使用していないと同じサーバー上の2つのアプリケーション間で通信を行う必要はありません。少しテストのために、私はちょうどajaxを使いました。 – xotix

答えて

0

オリジナルの問題はまだ私にはっきりしていないので、私は問題1と2を明示的に関連づけます。あなたはこのような例のためにそれを容易に行うことができます

問題1.

最終要求はZFと、SESSIONを使用して保存することができます:あなたが行うことはできません

$ns = new Zend_Session_Namespace("main_app_data_for_my_app"); 
$ns->lastRequest = $request->getServer("REQUEST_URI"); 
//now redirect to login 
//after login create `$ns` and read the `lastRequest` property 
//(and preferably unset it afterwards) 

問題2.

POSTデータを使った定期的なリダイレクトなので、問題1の解決策、すなわちSESSIONを見てみましょう。もちろんこれは、ログインアクションがSESSION変数の存在を認識するようにする必要があることを意味しますが、実装の詳細がわからないので、それが良いか悪いかを判断できません。

+0

ありがとうございます。しかし、実際に私はちょうどpreDispatchでプラグインを作成し、ログインをチェックし、そこにログインすることもできます。これがうまくいくと思ってください。おかげさしで、私はそれを見てみましょう。 – xotix

関連する問題