资讯专栏INFORMATION COLUMN

express cookie-parser 小书

senntyou / 982人阅读

摘要:简介是最常使用的中间件实际上虽然他名义上是一个中间件但是实际上已经俨然成为了的一个不可或缺的部分在的文档中操作的部分就一个方法和一个属性但是实际上如果你不使用中间件这些方法是根本就不存在的先从操作说起如果有一个纯净的像这样我们如何操纵显

简介

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?,显然只能在requestresponse中操纵.

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模块
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 express-session 小书

    摘要:简介是中的一个处理的中间件可以说是中最常见的中间件之一了由于会话管理依赖的使用所以它的中有很多用于控制的部分总的来说有如下的特点管理基本功能签名可替换持久储存模块本文中使用的版本为安装引入使用使用签名这个属性是必须的具体配置和 简介 express-session是express中的一个处理session的中间件,可以说是express中最常见的中间件之一了. 由于会话管理依赖cook...

    Scorpion 评论0 收藏0
  • express中cookie的使用和cookie-parser的解读

    摘要:最近在研究,学着使用,开始不会用,就百度了一下,没有百度到特别完整的解答。查阅了的,综合了网友的博客,解读了的源码,以及使用和验证,终于明白了中的使用。默认为网站域名过期时间,类型为。使用插件,后续代码直接使用或者即可 最近在研究express,学着使用cookie,开始不会用,就百度了一下,没有百度到特别完整的解答。查阅了express的API,综合了网友的博客,解读了cookie-...

    CODING 评论0 收藏0
  • node中的session

    摘要:当会话过期或被放弃后,服务器将终止该会话。原来中间件生成的是一个对象,里面包含了信息。这个有一个过期时间,比如,上面代码中设置的是小时。也就是说,小时后,这个在浏览器中会自动消失。 前言 在上一篇中node中的cookie,对cookie进行了相关介绍,本篇将继续前行,对session进行说明。 session是什么 session不就是会话嘛,那什么是会话呢?会话是一个比连接粒度更大...

    yankeys 评论0 收藏0
  • node中的session

    摘要:当会话过期或被放弃后,服务器将终止该会话。原来中间件生成的是一个对象,里面包含了信息。这个有一个过期时间,比如,上面代码中设置的是小时。也就是说,小时后,这个在浏览器中会自动消失。 前言 在上一篇中node中的cookie,对cookie进行了相关介绍,本篇将继续前行,对session进行说明。 session是什么 session不就是会话嘛,那什么是会话呢?会话是一个比连接粒度更大...

    fredshare 评论0 收藏0
  • node中的session

    摘要:当会话过期或被放弃后,服务器将终止该会话。原来中间件生成的是一个对象,里面包含了信息。这个有一个过期时间,比如,上面代码中设置的是小时。也就是说,小时后,这个在浏览器中会自动消失。 前言 在上一篇中node中的cookie,对cookie进行了相关介绍,本篇将继续前行,对session进行说明。 session是什么 session不就是会话嘛,那什么是会话呢?会话是一个比连接粒度更大...

    Donne 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<