2010-11-18 8 views
0

私はこんなことに取り組んでいますが、これを回避するにはハックを書くことができますが、これを行う適切な方法があるかどうかは疑問です。Zend ACL - 保護されているページにajax/jquery経由でリクエストを処理する方法

Zend ACLを使用して、保護されているページと認証が必要なページを指定しています。 たとえば、「UploadVideo.php」が保護されたページ(ユーザーがそのページにアクセスするためのリンクをクリックしたとき)はログインページに移動し、ログイン後はUploadVideo.phpページにリダイレクトされます。だから、このすべてが世話を受け、うまく動作します。

今、この他のページには - 「投票」ボタンのようなものがあります。彼がログインしている場合は、ユーザーにのみ投票することができ、ユーザがログインしている

ケース1 - 彼は、投票ボタンをクリックした - 私は、次のようアクションを呼び出すためのjQueryを使用しています:。/今 $.post('/video/vote', {video_id:video_id}, function(data) { if(data=="OK") ..... } をビデオ/投票は保護されたリソースであり、ユーザーがログインしているので、投票アクションが呼び出されて投票数が増え、「OK」メッセージが返され、ページは新しい投票数で動的に更新されます。彼は、投票ボタンをクリック - - ページが保護されているので、 - ログインページが変数「データ」のAJAX呼び出しを通して返され 理想的には、ユーザーがログインしていないケースが2 ユーザーがログインしていない

- ajaxコールは発生しません。 - ユーザはログインページ にリダイレクトされます。ログイン後、彼は/ video/voteアクションにリダイレクトされ、投票数は に変更され、最後に投票ボタン

どうすれば対応できますか?私はいくつかのハックを書いて、ユーザーがログインしているかどうかを確認し、それに応じてajax呼び出しを行うか、ユーザーをリダイレクトするかを決定することができますが、これを行う最善の方法です。

問題を明確に説明しているかどうかはわかりません。

お時間

答えて

1

のおかげで、私は知らない。このためZendの具体的な方法があるかもしれませんが、私は単純に(そしてクリーナー)何も考えることはできません

  • 移入よりユーザーがログインしているかどうかによって、JavaScriptの変数logged_inが表示されます。

  • ユーザーが投票ボタンをクリックしたときに、logged_inをチェックします。現在のページのURLを含むターゲット変数を使用してログインページに、彼らは

    ない場合は
  • リダイレクトをリダイレクトする提案(そのために、私はZend Frameworkの特定の方法が存在し、確信している)

  • 明らかに、すべてのサーバー側のチェックを適切に保ちます。これは便宜上のものです。

+0

おかげペッカは - これは私が念頭に置いていた正確なプロセスである - ちょうど別の方法 – Gublooo

+0

@Gubloooがあったかどうかを確認するためにチェックしていたうん、標準化のZend-yのアプローチは –

+0

ルックスがあります場合には開いているこの質問を続けるんあなたが記述したアプローチのように、このことを考える最良の方法です - 私は先に進み、あなたの答えを受け入れるでしょう - ありがとう – Gublooo

関連する問題