Node.js使用cookie


一,Cookie簡介

二,Cookie 特點

三,Cookie的使用

四,加密Cookie

五,Cookie的應用

一,Cookie簡介

  cookie 是存儲於訪問者的計算機中的變量。可以讓我們用同一個瀏覽器訪問同一個域

名的時候共享數據

  HTTP 是無狀態協議。簡單地說,當你瀏覽了一個頁面,然后轉到同一個網站的另一個頁

面,服務器無法認識到這是同一個瀏覽器在訪問同一個網站。每一次的訪問,都是沒有任何
關系的。

  Cookie 是一個簡單到爆的想法:當訪問一個頁面的時候,服務器在下行 HTTP 報文中,

命令瀏覽器存儲一個字符串; 瀏覽器再訪問同一個域的時候,將把這個字符串攜帶到上行
HTTP 請求中。第一次訪問一個服務器,不可能攜帶 cookie。 必須是服務器得到這次請求,
在下行響應報頭中,攜帶 cookie 信息,此后每一次瀏覽器往這個服務器發出的請求,都會
攜帶這個 cookie。

二、Cookie  特點

  ● cookie 保存在瀏覽器本地

  ● 正常設置的 cookie 是不加密的,用戶可以自由看到;
  ● 用戶可以刪除 cookie,或者禁用它
  ● cookie 可以被篡改
  ● cookie 可以用於攻擊
  ● cookie 存儲量很小。未來實際上要被 localStorage 替代,但是后者 IE9 兼容

三、Cookie 的使用

       1,安裝  cnpm install cookie-parser   --save

  2,引入 var CookIePar = require(''cookie-parser); 

  3,設置中間件

  app.use(cookieParser());

  4,設置 cookie

  res。cooKies(‘name’,zhangsan,{max:9000000,httpOnly:true});

  //httpOnly  默認false不允許 客戶端腳本訪問

  5,獲取cookie

  req.cookies.name

屬性說明

  domain: 域名

  name=value:鍵值對,可以設置要保存的 Key/Value,注意這里的 name 不能和其他屬性項的名字
一樣
  Expires: 過期時間(秒),在設置的某個時間點后該 Cookie 就會失效,如 expires=Wednesday,
  09-Nov-99 23:12:40 GMT
  maxAge: 最大失效時間(毫秒),設置在多少后失效
  secure: 當 secure 值為 true 時,cookie 在 HTTP 中是無效,在 HTTPS 中才有效
  Path: 表示 cookie 影響到的路,如 path=/。如果路徑不能匹配時,瀏覽器則不發送這個 Cookie
  httpOnly:是微軟對 COOKIE 做的擴展。如果在 COOKIE 中設置了“httpOnly”屬性,則通過程序(JS
  腳本、applet 等)將無法讀取到COOKIE 信息,防止 XSS 攻擊產生
  singed:表示是否簽名cookie, 設為true 會對這個 cookie 簽名,這樣就需要用
  res.signedCookies 而不是 res.cookies 訪問它。被篡改的簽名 cookie 會被服務器拒絕,並且 cookie
  值會重置為它的原始值

設置cookie

  res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })

  res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true });

  res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly:

true });

獲取 cookie

  res.cookies.name

刪除cookie

  res.cookie('rememberme', '', { expires: new Date(0)});

  res.cookie('username','zhangsan',{domain:'.ccc.com',maxAge:0,httpOnly:true}

四,加密Cookie

1,配置中間件的時候需要傳參

  var cookieParser = require('cookie-parser');

  app.use(cookieParser('123456'));

2,設置cookie的時候配置signed屬性

  res.cookie(‘userinfo’,‘參數’,{ domain:'.ccc.com',maxAge:900000,httpOnly:true,signed:true });

3,sigendCookies調用設置的cookie

console.log(req。sigedCookies);

五,cookie的應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM