當我在iOS全屏模式下使用「apple-mobile-web-app-capable」元標記運行移動網站時,我使用AJAX和同步頁面請求(包括重定向)的組合,在用戶登錄時成功。「apple-mobile-web-app-capable」網站在註銷後切換到Mobile Safari
但是,當用戶註銷並且會話被銷燬時,iOS設備將保持全屏模式並打開登錄移動Safari窗口中的頁面。
這裏是事件的共同序列:
- 用戶點擊主屏幕按鈕,在iOS的全 屏幕模式推出移動網站
- 服務器重定向用戶到登錄頁面的全屏認證(仍)
- 用戶登錄,並且被重定向回手機之家(還是在全屏)
- 用戶進行各種操作,通過GET和POST,一些使用AJAX,有些不是(仍處於全屏) 次
- 用戶點擊退出按鈕,它破壞會議,並重定向到登錄頁面
- 移動Safari瀏覽器窗口打開並呈現登錄頁面,這第二次
我已經試過301,302和303重定向上登出的成功並沒有什麼似乎改變了這種行爲。這似乎與用戶的會話在全屏模式下運行時相關。我不認爲這很重要,但安全機制是通過在Tomcat上運行的Spring Security實現的。
有什麼辦法可以防止這種行爲?我不希望在註銷時使用location.href客戶端重定向。
有趣。也許在較新版本的iOS中,它只發生在會話丟失?就像我說的,我寧願不使用客戶端重定向,但我會嘗試一下。 – kgx
那麼,如您所描述的那樣使用客戶端重定向可以防止Mobile Safari在註銷成功時打開。我正在嘗試在舊iOS設備上測試此網站,以查看我的所有鏈接是否都需要此行爲,或者只是註銷鏈接。 – kgx
我仍然無法弄清楚是什麼導致切換到移動Safari的註銷成功行動在特定的,而不是每一個其他同步後 - 重定向 - 得到,但你是正確的...唯一的方法來防止這種行爲似乎是在客戶端處理。 – kgx