咱們使用的部分網站設計成一旦登陸即不容許用戶手動退出,現實場景中是沒有問題的html
但若是是在測試或調試過程當中就會有強制登出的需求web
若是當前使用的是PC瀏覽器,您或許能夠經過調試模式清除保持登陸信息的數據實現手動退出。瀏覽器
可是若是當前使用的手機WEB瀏覽器,或者其餘web嵌入的方式(好比微信公衆號)退出是十分困難的微信
下面以退出微信公衆號下的京東到家爲例,說明如何使用FreeHttp實現手動退出登陸功能(FreeHttp 說明 http://www.javashuo.com/article/p-dflfncnc-nc.html)cookie
1:您須要爲您的移動設備設置Fiddler代理,並安裝證書(手機代理及證書的安裝您能夠經過百度查詢到相關文章)session
2:FreeHttp的安裝詳見(http://www.javashuo.com/article/p-dflfncnc-nc.html)iphone
3:進入微信登陸京東到家(測試中使用iphone6s移動設備)測試
如上圖配置網站
當您選擇Remove Session Cookies後會彈出上圖對話框,詢問您是否須要修改Set-Cookie的屬性信息(若是不須要修改直接關閉便可),由於有時候當前URL的域可能不是瀏覽器中Cookie的Domian,這個時候您可能須要添加一個Domian來手動指定ui
完成後您會發現『Response Modific』頁Add Head加入了許多Set-Cookie(由於沒法確認哪一個cookie包含着登陸信息,Remove Session Cookies會默認清除全部發現的cookie)
固然大多數狀況做爲測試或開發人員您是知道頁面哪一個cookie標識的用戶狀態,若是是這樣您不須要使用Remove Session Cookies刪除頁面下全部cookie,而能夠直接使用delete cookie手動指定須要刪除的cookie便可
點擊確認並設置規則生效
通常應用會將登陸狀態放在客戶端Cookie中(這樣瀏覽器會幫助管理維護cookie),也有一些服務API會將令牌放在自定義header或查詢字符串等其餘參數中(這通常出如今須要跨平臺的服務中,由於不是全部應用環境都是在瀏覽器中,有些嵌入式設備根本沒有瀏覽器)。
這一點很好區分,您只須要對比登陸狀態下的請求與不登陸狀態下請求的所有便可
咱們這裏是要清除微信公衆號應用的登陸狀態(大部分都是經過cookie來作到的)
咱們知道瀏覽器中的cookie是通常由請求返回頭中的Set-Cookie指定的,瀏覽器接收到該返回頭即會爲指定站點建立Cookie信息(詳細內容能夠看這裏 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Set-Cookie)
在有調試模式的瀏覽器中咱們很容易實現,直接右鍵刪除,或經過js刪除,不過對於沒有調試模式的手機終端前面的方法看起來行不通了。
查看Set-Cookie規則,咱們能夠發現Max-Age屬性(過時時間),那咱們只要把過時時間設置的足夠短不就能夠騙過瀏覽器,讓它刪除咱們想要刪除的cookie
注意這裏Set-Cookie是響應頭,全部必須瀏覽器先發起一個請求而後咱們修改該請求的響應頭,把帶有Max-Age=1屬性的Set-Cookie寫入就能夠了(Set-Cookie: name=delete by FreeHttp; Max-Age=1;Path=/)
改響應的操做就直接經過Fiddler上的FreeHttp插件實現便可,操做即上文所述
FreeHttp詳細使用方法見(http://www.javashuo.com/article/p-dflfncnc-nc.html)