Express全系列教程之(六):cookie的使用

一矿卑、關(guān)于Cookie

在我們關(guān)閉一個(gè)登錄過的網(wǎng)址并重新打開它后账胧,我們的登錄信息依然沒有丟失;當(dāng)我們?yōu)g覽了商品后歷史記錄里出現(xiàn)了我們點(diǎn)擊過的商品汤纸;當(dāng)我們推回到首頁(yè)后,推薦商品也為我們選出了相似物品芹血;事實(shí)上當(dāng)我們有過此類操作后贮泞,瀏覽器會(huì)將我們的操作信息保存到cookie上面。阿進(jìn)而言之幔烛,cookie就是儲(chǔ)存在用戶本地終端上的數(shù)據(jù)啃擦。


Cookie的特點(diǎn)

1.cookie保存在瀏覽器本地,只要不過期關(guān)閉瀏覽器也會(huì)存在饿悬。

2.正常情況下cookie不加密令蛉,用戶可輕松看到

3.用戶可以刪除或者禁用cookie

4.cookie可以被篡改

5.cookie可用于攻擊

6.cookie存儲(chǔ)量很小,大小一般是4k

7.發(fā)送請(qǐng)求自動(dòng)帶上登錄信息


二狡恬、Cookie的安裝及使用

1.安裝

cnpm install cookie-parser --save

2.引入

const cookieParser=require("cookie-parser");

3.設(shè)置中間件

app.use(cookieParser());

4.設(shè)置cookie

res.cookie("name",'zhangsan',{maxAge: 900000, httpOnly: true});

//res.cookie(名稱,值,{配置信息});


關(guān)于設(shè)置cookie的參數(shù)說明:

domain: 域名

name=value:鍵值對(duì)珠叔,可以設(shè)置要保存的 Key/Value蝎宇,注意這里的 name 不能和其他屬性項(xiàng)的名字一樣

Expires: 過期時(shí)間(秒),在設(shè)置的某個(gè)時(shí)間點(diǎn)后該 Cookie 就會(huì)失效运杭,如 expires=Wednesday, 09-Nov-99 23:12:40 GMT夫啊。

maxAge: 最大失效時(shí)間(毫秒),設(shè)置在多少后失效 辆憔。

secure: 當(dāng) secure 值為 true 時(shí)撇眯,cookie 在 HTTP 中是無(wú)效,在 HTTPS 中才有效 虱咧。

Path: 表示 在那個(gè)路由下可以訪問到cookie熊榛。

httpOnly:是微軟對(duì) COOKIE 做的擴(kuò)展。如果在 COOKIE 中設(shè)置了“httpOnly”屬性腕巡,則通過程序(JS 腳本玄坦、applet 等)將無(wú)法讀取到COOKIE 信息,防止 XSS 攻擊的產(chǎn)生 绘沉。

singed:表示是否簽名cookie, 設(shè)為true 會(huì)對(duì)這個(gè) cookie 簽名煎楣,這樣就需要用 res.signedCookies 而不是 res.cookies 訪問它。被篡改的簽名 cookie 會(huì)被服務(wù)器拒絕车伞,并且 cookie 值會(huì)重置為它的原始值择懂。

5.獲取cookie

req.cookie.name;

下面是一個(gè)基礎(chǔ)實(shí)例:

const express=require("express");

const cookieParser=require("cookie-parser");

var app=express();

//設(shè)置中間件

app.use(cookieParser());

app.get("/",function(req,res){

????res.send("首頁(yè)");

});

//設(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(8080);

當(dāng)訪問set路由后會(huì)設(shè)置cookie另玖,當(dāng)訪問get路由后會(huì)獲取到設(shè)置的cookie值困曙。當(dāng)然你也可以在其他頁(yè)面繼續(xù)獲取當(dāng)前cookie,以實(shí)現(xiàn)cookie共享谦去。


三慷丽、多個(gè)二級(jí)域名共享cookie

只需要增加res.cookie中option對(duì)象的值,即可實(shí)現(xiàn)對(duì)相應(yīng)路由下多個(gè)二級(jí)路由的cookie進(jìn)行共享鳄哭,代碼如下:

const express=require("express");

const cookieParser=require("cookie-parser");

var app=express();

//設(shè)置中間件

app.use(cookieParser());

app.get("/",function(req,res){

????res.send("首頁(yè)");

});

//設(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(8080);

我們可以看到:


www二級(jí)域名的cookie


other二級(jí)域名的cookie

不同的二級(jí)域名也能訪問到相同的cookie,只要滿足ccc.com這個(gè)頂級(jí)域名就行妆丘。锄俄,關(guān)于下一章我會(huì)講解cookie加密(簽名),先寫到這里吧飘痛!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末珊膜,一起剝皮案震驚了整個(gè)濱河市容握,隨后出現(xiàn)的幾起案子宣脉,更是在濱河造成了極大的恐慌,老刑警劉巖剔氏,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塑猖,死亡現(xiàn)場(chǎng)離奇詭異竹祷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)羊苟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門塑陵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜡励,你說我怎么就攤上這事令花。” “怎么了凉倚?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵兼都,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我稽寒,道長(zhǎng)扮碧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任杏糙,我火速辦了婚禮慎王,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宏侍。我一直安慰自己赖淤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布负芋。 她就那樣靜靜地躺著漫蛔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旧蛾。 梳的紋絲不亂的頭發(fā)上莽龟,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音锨天,去河邊找鬼毯盈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛病袄,可吹牛的內(nèi)容都是我干的搂赋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼益缠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼脑奠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起幅慌,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宋欺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齿诞,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酸休,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祷杈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斑司。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖但汞,靈堂內(nèi)的尸體忽然破棺而出宿刮,到底是詐尸還是另有隱情,我是刑警寧澤私蕾,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布糙置,位于F島的核電站,受9級(jí)特大地震影響是目,放射性物質(zhì)發(fā)生泄漏谤饭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一懊纳、第九天 我趴在偏房一處隱蔽的房頂上張望揉抵。 院中可真熱鬧,春花似錦嗤疯、人聲如沸冤今。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)戏罢。三九已至,卻和暖如春脚囊,著一層夾襖步出監(jiān)牢的瞬間龟糕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工悔耘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讲岁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓衬以,卻偏偏與公主長(zhǎng)得像缓艳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子看峻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容