「apple-mobile-web-app-capable」メタ タグを使用して iOS フルスクリーン モードでモバイル サイトを実行している場合、AJAX と同期ページ リクエスト (リダイレクトを含む) を組み合わせて使用し、ユーザーがログインしている間は成功しています。 .
ただし、ユーザーがログアウトしてセッションが破棄されると、iOS デバイスは全画面表示モードを終了し、Mobile Safari ウィンドウでログイン ページを開きます。
一般的な一連のイベントを次に示します。
- ユーザーがホーム画面のボタンをクリックして、モバイル サイトを iOS フルスクリーン モードで起動する
- サーバーは認証のためにユーザーをログインページにリダイレクトします(まだフルスクリーンです)
- ユーザーがログインし、モバイル ホームにリダイレクトされます (全画面表示のまま)
- ユーザーは、GET および POST を介してさまざまなアクションを実行します。一部は AJAX を使用し、一部は使用していません (まだ全画面表示)。
- ユーザーがログアウト ボタンを押すと、セッションが破棄され、ログイン ページにリダイレクトされます
- モバイル Safari ウィンドウが開き、ログイン ページが表示されます。
ログアウトの成功時に 301、302、および 303 リダイレクトを試みましたが、この動作を変更するものは何もないようです。全画面モードで実行しているときにユーザーのセッションが終了することに関連しているようです。これは問題ではないと思いますが、Tomcat で実行される Spring Security を介してセキュリティ メカニズムが実装されています。
この動作を防ぐ方法はありますか? ログアウト時に location.href クライアント側のリダイレクトを使用したくない。