0

私の Zend アプリケーションには、データのフォームまたは json 配列を取り込むための Ajax アクションがいくつかあります。

2 つの Ajax アクションが (同じログイン セッションから) 同時に発生すると、そのうちの 1 つがログイン画面を返します。さらに、場合によっては (すべての場合ではありませんが)、アプリケーションから別のページを要求すると、ユーザーがログアウトされることもあります。デバッグ中に、次のコード (LoginRequired ヘルパー内) で if 句が実行されていることがわかりました。この句は、ユーザーが実際にログアウトしていない限り、サイトの通常の操作では実行されません。

$auth = Zend_Auth::getInstance();
if(!$auth->hasIdentity()){
   ...
}

私の質問は次のとおりです。

ajax リクエストの非同期性やシステムのセキュリティを犠牲にしないソリューションが必要です。

ありがとうございました。

4

1 に答える 1

1

古典的な競合状態のように聞こえます。このすばらしい記事を参照してください:http://www.chipmunkninja.com/Troubles-with-Asynchronous-Ajax-Requests-g@

頭に浮かぶ解決策には、セッションをより早く終了するか、session_set_save_handler()を書き直すことが含まれます。

于 2012-12-21T14:27:25.870 に答える