摘要:简介是最常使用的中间件实际上虽然他名义上是一个中间件但是实际上已经俨然成为了的一个不可或缺的部分在的文档中操作的部分就一个方法和一个属性但是实际上如果你不使用中间件这些方法是根本就不存在的先从操作说起如果有一个纯净的像这样我们如何操纵显
简介
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");
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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不就是会话嘛,那什么是会话呢?会话是一个比连接粒度更大...
阅读 2240·2021-11-22 15:29
阅读 4116·2021-11-04 16:13
阅读 1002·2019-08-29 16:58
阅读 347·2019-08-29 16:08
阅读 1469·2019-08-23 17:56
阅读 2395·2019-08-23 17:06
阅读 3173·2019-08-23 16:55
阅读 2070·2019-08-23 16:22