Cookie
當(dāng)關(guān)閉一個登錄過的網(wǎng)址并重新打開它后橙弱,我們的登錄信息依然沒有丟失;當(dāng)我們?yōu)g覽了商品后歷史記錄里出現(xiàn)了我們點(diǎn)擊過的商品涌穆;當(dāng)我們推回到首頁后侨颈,推薦商品也為我們選出了相似物品;事實(shí)上當(dāng)我們有過此類操作后构眯,瀏覽器會將我們的操作信息保存到cookie上面愕难。阿進(jìn)而言之,cookie就是儲存在用戶本地終端上的數(shù)據(jù)
一惫霸、cookie的特點(diǎn)
1.cookie保存在瀏覽器本地猫缭,只要不過期關(guān)閉瀏覽器也會存在。
2.正常情況下cookie不加密壹店,用戶可輕松看到
3.用戶可以刪除或者禁用cookie
4.cookie可以被篡改
5.cookie可用于攻擊
6.cookie存儲量很小猜丹,大小一般是4k
7.發(fā)送請求自動帶上登錄信息
二、Cookie的安裝及使用
安裝
npm install cookie-parser --save
使用
const cookieParser=require("cookie-parser");
設(shè)置中間件
app.use(cookieParser());
設(shè)置cookie
res.cookie("name",'zhangsan',{maxAge: 900000, httpOnly: true});
//res.cookie(名稱,值,{配置信息})
參數(shù)說明:
domain: 域名
name=value:鍵值對硅卢,可以設(shè)置要保存的 Key/Value射窒,注意這里的 name 不能和其他屬性項(xiàng)的名字一樣
Expires: 過期時(shí)間(秒)妖混,在設(shè)置的某個時(shí)間點(diǎn)后該 Cookie 就會失效,如 expires=Wednesday, 09-Nov-99 23:12:40 GMT轮洋。
maxAge: 最大失效時(shí)間(毫秒),設(shè)置在多少后失效 抬旺。
secure: 當(dāng) secure 值為 true 時(shí)弊予,cookie 在 HTTP 中是無效,在 HTTPS 中才有效 开财。
Path: 表示 在那個路由下可以訪問到cookie汉柒。
httpOnly:是微軟對 COOKIE 做的擴(kuò)展。如果在 COOKIE 中設(shè)置了“httpOnly”屬性责鳍,則通過程序(JS 腳本碾褂、applet 等)將無法讀取到COOKIE 信息,防止 XSS 攻擊的產(chǎn)生 历葛。
singed:表示是否簽名cookie, 設(shè)為true 會對這個 cookie 簽名正塌,這樣就需要用 res.signedCookies 而不是 res.cookies 訪問它。被篡改的簽名 cookie 會被服務(wù)器拒絕恤溶,并且 cookie 值會重置為它的原始值乓诽。
獲取cookie
const express=require("express");
const cookieParser=require("cookie-parser");
var app=express();
//設(shè)置中間件
app.use(cookieParser());
app.get("/",function(req,res){
res.send("首頁");
});
//設(shè)置cookie
app.get("/set",function(req,res){
res.cookie("userName",'張三',{maxAge: 20000, httpOnly: true});
res.send("設(shè)置cookie成功");
});
//獲取cookie
app.get("/get",function(req,res){
console.log(req.cookies.userName);
res.send("獲取cookie成功,cookie為:"+ req.cookies.userName);
});
app.listen(3000);
多個二級域名共享cookie
const express=require("express");
const cookieParser=require("cookie-parser");
var app=express();
//設(shè)置中間件
app.use(cookieParser());
app.get("/",function(req,res){
res.send("首頁");
});
//設(shè)置cookie
app.get("/set",function(req,res){
res.cookie("userName",'張三',{maxAge: 200000, httpOnly: true,domain: "ccc.com"});
res.send("設(shè)置cookie成功");
});
//獲取cookie
app.get("/get",function(req,res){
console.log(req.cookies.userName);
res.send("獲取cookie成功咒程,cookie為:"+ req.cookies.userName);
});
app.listen(3000);
如果感覺有幫助留下一個寶貴的贊鸠天,或者給小編一個贊賞!U室觥稠集!