這篇文章主要為大家展示了“基于cookie登陸驗證與退出的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“基于cookie登陸驗證與退出的示例分析”這篇文章吧。
創(chuàng)新互聯(lián)建站為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設計服務,主要包括網(wǎng)站設計制作、網(wǎng)站設計、成都App定制開發(fā)、小程序定制開發(fā)、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質(zhì)量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
看到信息里面有這樣一條疑問:
是一個關(guān)于關(guān)于cookie登陸退出的問題。問題原文為:怎么實現(xiàn)退出登陸,頁面跳轉(zhuǎn)到登陸頁面,前端登陸后,后端返回字段設置cookie 就可以實現(xiàn)身份認證,但是這個cookies 應該是設置了httponly 字段,不允許前端js操作的,那點擊退出按鈕怎么應該做什么
首先先解決這樣一個疑問,就是不論cookie有沒有設置httponly屬性,登陸或者退出時候的cookie都不應該由js來操作。具體原因后面會說。
網(wǎng)站發(fā)送登陸請求之后,在響應頭中通過Set-Cookie來設置cookie,瀏覽器接收到響應后,會將Set-Cookie中的cookie信息存儲到瀏覽器,如圖:
此時查看瀏覽器的application 如圖:
這是登陸的情況,那退出呢?這時有些朋友認為,點擊退出按鈕,或者進行退出操作,直接調(diào)用js刪除cookie不就可以了嗎,一般的項目中是不會這樣操作的,刪除cookie也是通過后端來實現(xiàn)。既然后端可以通過Set-Cookie設置cookie,那么也應該可以通過Set-Cookie刪除cookie,所以一般的項目接口文檔中都會有一個退出接口api。
當前端向這個退出api發(fā)送請求時,響應頭中的Set-Cookie一般會將登陸時設置的cookie(PHPSESSID)的expires屬性設置成一個過期時間。這樣瀏覽器解析這個Set-Cookie時就將PHPSESSID刪除掉了。
當向這個退出接口發(fā)送信息的時候,看看network會響應什么呢,如圖:
再看看appliaction的顯示結(jié)果:
那為什么不可以用前端的js刪除cookie呢,這里就涉及到了session信息,當你登陸網(wǎng)站后,后端服務器將一個cookie返回給前端,并且會在后端數(shù)據(jù)庫存儲一個cookie,這兩個cookie是相同的,每次退出后兩個cookie都應該刪除,這就需要前端向后端發(fā)送一個刪除cookie的請求,服務器接受到請求后刪除cookie,并在響應頭中設置如下信息。
Set-Cookie:PHPSESSID=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
瀏覽器接受到以上信息,根據(jù)expires字段信息判斷cookie過期(1970年就過期了),將cookie刪除。這樣兩個cookie就都刪除了。
如果只是用前端js將cookie手動清除,后端依然保存著cookie,造成資源浪費,當然還有一些其他的弊端,這里不做贅述。
以上是“基于cookie登陸驗證與退出的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!