摘要:簡(jiǎn)介是最常使用的中間件實(shí)際上雖然他名義上是一個(gè)中間件但是實(shí)際上已經(jīng)儼然成為了的一個(gè)不可或缺的部分在的文檔中操作的部分就一個(gè)方法和一個(gè)屬性但是實(shí)際上如果你不使用中間件這些方法是根本就不存在的先從操作說起如果有一個(gè)純凈的像這樣我們?nèi)绾尾倏v顯
簡(jiǎn)介
cookie-parser是Express最常使用的中間件,實(shí)際上雖然他名義上是一個(gè)中間件但是實(shí)際上已經(jīng)儼然成為了Express的一個(gè)不可或缺的部分.
在Express4的文檔中,操作Cookie的部分就一個(gè)方法和一個(gè)屬性.但是實(shí)際上如果你不使用cookie-parser中間件這些方法是根本就不存在的.
先從Express操作cookie說起如果有一個(gè)純凈的Express,像這樣:
const app = new express(); app.get("/login", (request, response) => { response.send("hello express"); }); app.listen(8888, "127.0.0.1");
我們?nèi)绾尾倏vcookie?,顯然只能在request和response中操縱.
express在request提供了:
cookies {Object}
在response提供了:
res.cookie(name, value [, options])
簡(jiǎn)單來講一個(gè)用于獲取另外一個(gè)用于寫入.
但是一切的前提就是你得使用cookie-parser中間件的前提下才可以擁有這個(gè)屬性和方法,之前我就被坑了.
在上面的極簡(jiǎn)實(shí)例中我們得使用:
app.get("/login", (request, response) => { console.log(request.headers.cookie); response.send("hello express"); });
才可以獲取沒有使用cookie-parser中間件時(shí)候的cookie.
cookie-parser的具體功能已鍵值對(duì)的形式的獲取cookie
使用簡(jiǎn)單的方法設(shè)置cookie
對(duì)于cookie進(jìn)行簽名
調(diào)用參數(shù)cookie-parser在初始化的時(shí)候和寫入cookie的時(shí)候允許傳入?yún)?shù).
在初始化的時(shí)候允許傳入:
參數(shù) | 類型 | 描述 | |
---|---|---|---|
secret | string | string[] | 用于簽名cookie的字符串 |
options | object | 選項(xiàng)基于cookie模塊 |
基本格式如下res.cookie(name, value [, options]).
其中第一個(gè)參數(shù)是name是cookie的鍵,而value是鍵對(duì)應(yīng)的的值.
options有如下的選項(xiàng),基本都是cookie在HttpHeader中的參數(shù):
參數(shù) | 類型 | 描述 |
---|---|---|
domain | string | 描述cookie作用的主機(jī) |
path | stirng | 只有在匹配成功的地址才會(huì)發(fā)送cookie默認(rèn) / |
encode | function | 用于cookie的編碼默認(rèn)是encodeURIComponent |
expires | date | 使用GMT格式的時(shí)間來指定過期時(shí)間 |
maxAge | number | 指定多好毫秒后cookie失效 |
httpOnly | boolean | 設(shè)置后客戶端無法訪問cookie的內(nèi)容 |
secure | boolean | 標(biāo)記這個(gè)cookie只有在https協(xié)議下起作用 |
signed | boolean | 對(duì)于cookie進(jìn)行簽名 |
sameSite | boolean | 阻止cookie在跨站請(qǐng)求的時(shí)候發(fā)送 |
在MDN中有cookie的詳細(xì)解釋,上面除了signed外都有介紹.
https://developer.mozilla.org...使用示例
基本示例:
const express = require("express"); const cookieParse = require("cookie-parser"); const app = new express(); app.use(cookieParse()); app.get("/login", (request, response) => { // 以鍵值對(duì)的形式獲取所有的cookie console.log(reqeust.cookies); // 寫入cookie response.cookie("key", "value"); response.send("hello express"); }); app.listen(8888, "127.0.0.1");
使用cookie簽名:
const express = require("express"); const cookieParse = require("cookie-parser"); const app = new express(); // 傳入一個(gè)字符串對(duì)cookie進(jìn)行簽名 app.use(cookieParse("hello world")); app.get("/login", (request, response) => { // 獲取沒有簽名的cookie console.log(request.cookies); // 獲取簽名的cookie console.log(request.signedCookies); // 寫入簽名cookie response.cookie("signed", "true", {maxAge: 100000,signed:true}); // 寫入未簽名cookie response.cookie("key", "value"); response.send("hello express"); }); app.listen(8888, "127.0.0.1");
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99442.html
摘要:簡(jiǎn)介是中的一個(gè)處理的中間件可以說是中最常見的中間件之一了由于會(huì)話管理依賴的使用所以它的中有很多用于控制的部分總的來說有如下的特點(diǎn)管理基本功能簽名可替換持久儲(chǔ)存模塊本文中使用的版本為安裝引入使用使用簽名這個(gè)屬性是必須的具體配置和 簡(jiǎn)介 express-session是express中的一個(gè)處理session的中間件,可以說是express中最常見的中間件之一了. 由于會(huì)話管理依賴cook...
摘要:最近在研究,學(xué)著使用,開始不會(huì)用,就百度了一下,沒有百度到特別完整的解答。查閱了的,綜合了網(wǎng)友的博客,解讀了的源碼,以及使用和驗(yàn)證,終于明白了中的使用。默認(rèn)為網(wǎng)站域名過期時(shí)間,類型為。使用插件,后續(xù)代碼直接使用或者即可 最近在研究express,學(xué)著使用cookie,開始不會(huì)用,就百度了一下,沒有百度到特別完整的解答。查閱了express的API,綜合了網(wǎng)友的博客,解讀了cookie-...
摘要:當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該會(huì)話。原來中間件生成的是一個(gè)對(duì)象,里面包含了信息。這個(gè)有一個(gè)過期時(shí)間,比如,上面代碼中設(shè)置的是小時(shí)。也就是說,小時(shí)后,這個(gè)在瀏覽器中會(huì)自動(dòng)消失。 前言 在上一篇中node中的cookie,對(duì)cookie進(jìn)行了相關(guān)介紹,本篇將繼續(xù)前行,對(duì)session進(jìn)行說明。 session是什么 session不就是會(huì)話嘛,那什么是會(huì)話呢?會(huì)話是一個(gè)比連接粒度更大...
摘要:當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該會(huì)話。原來中間件生成的是一個(gè)對(duì)象,里面包含了信息。這個(gè)有一個(gè)過期時(shí)間,比如,上面代碼中設(shè)置的是小時(shí)。也就是說,小時(shí)后,這個(gè)在瀏覽器中會(huì)自動(dòng)消失。 前言 在上一篇中node中的cookie,對(duì)cookie進(jìn)行了相關(guān)介紹,本篇將繼續(xù)前行,對(duì)session進(jìn)行說明。 session是什么 session不就是會(huì)話嘛,那什么是會(huì)話呢?會(huì)話是一個(gè)比連接粒度更大...
閱讀 2291·2021-11-22 15:29
閱讀 4141·2021-11-04 16:13
閱讀 1019·2019-08-29 16:58
閱讀 359·2019-08-29 16:08
閱讀 1501·2019-08-23 17:56
閱讀 2422·2019-08-23 17:06
閱讀 3189·2019-08-23 16:55
閱讀 2086·2019-08-23 16:22