node+express操作cookie「建议收藏」

node+express操作cookie「建议收藏」Cookie:有时也用其复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。用node操作cookie我们需要cookie-parser模块npmicookie-parser-s接下来在我们的文件中引入此模块//引入express模块constexpress=require(‘express’)//实例化expressconstapp=

大家好,又见面了,我是你们的朋友全栈君。

Cookie:有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。


用node操作cookie我们需要cookie-parser模块

npm i cookie-parser -s

接下来在我们的文件中引入此模块

// 引入express模块
const express = require('express')
// 实例化express
const app = express()
// 操作cookie模块
const cookieParser = require('cookie-parser');
// 加入cookie签名
app.use(cookieParser('真的好离谱')); //使用cookie中间件,加密值为:‘真的好离谱’

参数详解

name: 一个唯一确定cookie的名称。
value: 存储在cookie中字符串的值。
domain: cookie对于那个域下是有效的,
path: 表示这个cookie影响到的路径,浏览器会根据这个配置,向指定的域中匹配的路径发送cookie。
expires: 失效时间,表示cookie何时失效的时间,如果不设置这个时间,浏览器就会在页面关闭时将删除所有的cookie,不过我们也可以自己设置过期时间。
注意:如果客户端和服务器端设置的时间不一致,使用expires就会存在偏差。
max-age: 用来告诉浏览器此cookie多久过期(单位是秒),一般的情况下,max-age的优先级高于expires。
HttpOnly: 告诉浏览器不允许通过脚本document.cookie去更改值,这个值在document.cookie中也是不可见的,但是在http请求会携带这个cookie,
注意:这个值虽然在脚本中使不可取的,但是在浏览器安装目录中是以文件形式存在的,这个设置一般在服务器端设置的。
secure:安全标志,指定后,当secure为true时候,在HTTP中是无效的,在HTTPS中才有效,表示创建的cookie只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是HTTP连接则不会传递该信息,所以一般不会被且听到。

关于读取问题

  1. req.cookies:读取到的是我们未加密的cookie;
  2. req.signedCookies:读取我们的加密cookie。

案例

app.get('/', (req, res) => { 
   
    res.cookie('cart', { 
    items: [1, 2, 3] }, { 
    maxAge: 10000 * 2, httpOnly: true, signed: true, path: '/' });
    res.cookie('user', '张三', { 
    httpOnly: true, path: '/user', signed: true })
    res.send('ok')
    console.log(req.cookies)
    console.log(req.signedCookies)
})

在这里插入图片描述

在这里插入图片描述

app.get('/user', (req, res) => { 
   

    console.log(req.cookies)
    res.send(req.signedCookies)
})

在这里插入图片描述

app.get('/news', function (req, res) { 
   
    res.cookie('Age', '大白', { 
    maxAge: 10000 * 2, httpOnly: true, signed: true })
    res.cookie('Age', '0', { 
    maxAge: 0 }); //删除cookie
    res.send('你好nodejs news')
})

在这里插入图片描述
maxAge0时会删除我们的cookie

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157253.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月11日 下午12:00
下一篇 2022年7月11日 下午12:16


相关推荐

  • python读取tiff文件_python+tifffile之tiff文件读写方式

    python读取tiff文件_python+tifffile之tiff文件读写方式背景使用 python 操作一批同样分辨率的图片 合并为 tiff 格式的文件 由于 opencv 主要用于读取单帧的 tiff 文件 对多帧的文件支持并不好 通过搜索发现了两个比较有用的包 TiffCapture 和 tifffile 两者都可用 pip 安装 其中前者主要用于读取 tiff 文件 后者可读可写 最终选择 tifffile 来合成 tiff 图片文件 安装 tifffilepipi 原理

    2026年3月18日
    2
  • 主、外键约束_创建主键约束

    主、外键约束_创建主键约束主、外键约束点关注不迷路,欢迎再来!主键和外键是两种类型的约束;1.主键是能唯一的标识表中的每一行,就是说这一列非空且值不重复,可以指定为主键;作用是用来强制约束表中的每一行数据的唯一性;2.外键是b表中的某一列引用的值来源于a表中的主键列。也是约束b表中的外键列的值必须取致a表中的主键列值,不是其中的值就不能插入b表中。可以形成a表b表的联系,保持数据的约束和关联性。创建主表主键…

    2022年10月20日
    3
  • ps 去除衣服褶皱的方法!Nano Banana Pro:AI 修图一键去褶,衣服版型更立体

    ps 去除衣服褶皱的方法!Nano Banana Pro:AI 修图一键去褶,衣服版型更立体

    2026年3月15日
    2
  • 什么叫大数据 大数据的概念

    什么叫大数据 大数据的概念1、大数据定义 对于“大数据”(Bigdata)研究机构Gartner给出了定义,“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工

    2022年5月4日
    64
  • Java 图片URL转Base64编码

    Java 图片URL转Base64编码前言实现方式:通过图片URL获取二进制流,再对字节数组进行Base64编码转换具体实现实现类importsun.misc.BASE64Encoder;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.regex.Matcher;importjava.util.r

    2025年11月20日
    6
  • 月之暗面发布开源模型,自带思考链路和工具调用能力

    月之暗面发布开源模型,自带思考链路和工具调用能力

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号