開始一個koa2 -(3)-cookie存儲數據

1.前端理解的cookie:

  • cookie 是一個變量,它存在訪問者的計算機中。
  • 作用:可以讓我們用同一個瀏覽器訪問同一個域名的時候共享數據。

2.後臺理解的cookie:

cookie是一種報文頭信息,請求報文和響應報文中都可以有cookie,key-value的形式,主要用來識別用戶身份。

例如:

瀏覽器第一次訪問域名A--》服務器向客戶端發送cookie--》瀏覽器存儲

瀏覽器再次訪問域名A--》將這個cookie返回給服務器

這相當於瀏覽器與服務器建立會話,關閉瀏覽器,會話結束;

3.在學習koa2設置cookie前,可以比較一下express 是如何設置cookie的;nodejs基礎教程-簡單blog(5)-cookie保存用戶登錄狀態

下面是koa2設置cookie

cookie:

 cookie = {
  maxAge: '', // cookie有效時長 單位:毫秒數
  expires: '',  // cookie失效時間
  path: '', // 寫cookie所在的路徑,默認是'/'
  domain: '', // 寫cookie所在的域名
  httpOnly: '', //是否只用於http請求中獲取;  默認是 true ,客戶端不可讀取

   // 是否允許重寫  一個布爾值,表示是否覆蓋以前設置的同名的 cookie (默認是 false).
  // 如果是 true, 在同一個請求中設置相同名稱的所有 Cookie(不管路徑或域)是否在設置此Cookie 時從 Set-Cookie 標頭中過濾掉。
  overwrite: '',

  secure: '',// 安全 cookie   默認false,設置成true表示只有 https可以訪問
  sameSite: '',
  signed: '',

}

//expires/maxAge 字段爲此cookie超時時間。若設置其值爲一個時間,那麼當到達此時間後,
//此cookie失效。不設置的話默認值是Session

4.設置cookie;

ctx.cookies.set(
		'cid',//name
		'hello world222',//value
		{
		  maxAge: 10 * 60 * 1000, // cookie有效時
            //expires: new Date('2018-11-17'),  // cookie失效時間
		}
	)

首次建立會話,只有response headers中有cookie.

第二次建立會話,request headers中也有cookie

5.服務器清除cookie

ctx.cookies.set('cid', '', { maxAge: 0})

 

 

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