node js 對cookie的操作

   Cookie是小甜餅的意思。顧名思義,cookie 確實非常小,它的大小限制爲4KB左右,是網景公司的前僱員 LouMontulli 在1993年3月的發明。它的主要用途有保存登錄信息,比如你登錄某個網站市場可以看到“記住密碼”,這通常就是通過在 Cookie中存入一段辨別用戶身份的數據來實現的。在編程世界裏,我們通常對它做這樣的理解:Cookie是存儲在瀏覽器的緩存,用戶登錄之後返回的token可以存儲在cookie中;

1.如何設置cookie的過期時間:

  expires:new Date( date + config.cookieTime + 28800000)

2. maxAge和expire的區別:

   參考網址 :http://www.cnblogs.com/yinhaiming/articles/1490811.html

.Expires指定一個絕對的過期時間(GMT格式),這麼做會導致至少2個問題1)客戶端和服務器時間不同步導致Expires的配置出現問題 2)很容易在配置後忘記具體的過期時間,導致過期來臨出現浪涌現象;

.max-age 指定的是從文檔被訪問後的存活時間,這個時間是個相對值(比如:3600s),相對的是文檔第一次被請求時服務器記錄的Request_time(請求時間)

3.程序中node js 對cookie的操作


    expire中之所以加上後面的28800000 是因爲默認的時間使用的是gmt(國際時間),國際時間使用的是中央時區的時間,北京是東八區,所以必須在國際時間的基礎上加上8小時。單位是毫秒所以總數爲:8*60*60*1000

4.設置當前用戶的cookie在關閉瀏覽器之後,退出登錄,並且刪除cookie:

   這就需要我們不對maxAge和expire做任何的設置,保持默認值;

   如果在上述代碼中配置maxAge等於-1,界面可以登錄但是登陸成功之後個人的信息沒有獲取並展示到頁面中;所以maxAge=-1並不可取;

5.前端取消設置cookie的過期時間,那麼如何控制當前網站的cookie在失效的時間之後讓當前用戶登出;

   通過第4點,我們已經將前端過期時間取消,但是我們如何確保頁面中從後臺獲取的cookie失效之後,將當前用戶的登出,所以我們就需要在前端添加一個攔截器,攔截用戶的請求,查看其中是否有用戶的token,token是否已經失效;這樣雖然我們沒有明確設置cookie的失效時間,但是依舊可以控制超出失效時間的正常操作:

   前提:後端設置cookie的過期時間爲12小時,如果token失效,用戶的訪問請求將無法完成前端發送過來的請求:

   實現:在web.xml中定義一個攔截器,用來攔截並驗證所有需要登錄才能訪問界面的請求;(具體代碼實現如親們有需要請私聊小編)

6.有時候我們沒有必要一定要把用戶信息放在cookie,如果沒有其他的必要原因,針對第4點要實現的效果,我們可以選擇使用html5自帶的sessionStorage;

   sessionStorage 和 localStorage 就一個不同的地方, sessionStorage數據的存儲僅特定於某個會話中,也就是說數據只保持到瀏覽器關閉,當瀏覽器關閉後重新打開這個頁面時,之前的存儲已經被清除。而 localStorage 是一個持久化的存儲,它並不侷限於會話。

  在node js中的cookie的相關操作,基本上整理完了,請大家指正;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章