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