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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Visifire WPF 图表控件 激活成功教程「建议收藏」

    Visifire WPF 图表控件 激活成功教程「建议收藏」可能用WPF生成过图表的开发人员都知道,WPF虽然本身的绘图能力强大,但如果每种图表都自己去实现一次的话可能工作量就大了,尤其是在开发时间比较紧的情况下。这时候有必要借助一种专业的图表工具。Visifire是专为WPF、SliverLight、WP开发人员制定的一套图表控件,实现了一系列的专业图表(如:柱图、点图、雷达、饼图、K线图、以及其组合图等)。它在4….

    2022年7月21日
    13
  • 微服务架构-实现技术之具体实现工具与框架7:Spring Cloud Zuul原理与注意事项「建议收藏」

    目录一、SpringCloudZuul概述二、SpringCloudZuul典型基本配置:路由配置和功能配置(一)路由配置:配置简化与规则+路由通配符1.单实例serviceId映射(可不短简化,具体如下)2.单实例url映射3.多实例映射(Zuul默认使用Eureka集成的负载均衡功能,所以若使用该功能需要做如下两件事:见注释)4.forward本地跳转(针…

    2022年4月6日
    81
  • linux ll命令时间,Linux ll命令显示年月日 时分秒

    linux ll命令时间,Linux ll命令显示年月日 时分秒[root@linuxboot]#ls-lh–time-style=+”%Y-%m-%d%H:%M:%S”total13M-rw-r–r–1rootroot69K2011-01-1406:40:04config-2.6.18-238.el5PAE-rw-r–r–1rootroot69K2016-09-0606:26:21config-2.6….

    2022年9月16日
    4
  • java读取xml(当xml放在包里时)

    java读取xml(当xml放在包里时)

    2021年9月2日
    52
  • Pycharm中的代码调试基本步骤

    Pycharm中的代码调试基本步骤文章目录步骤一、在所选行点击鼠标左键,此时会出现红点标记,若想取消再点击一次即可步骤二、在空白处单击鼠标右键,并点击DEBUG选项步骤三、点击控制台相关的功能按键就行调试步骤一、在所选行点击鼠标左键,此时会出现红点标记,若想取消再点击一次即可步骤二、在空白处单击鼠标右键,并点击DEBUG选项步骤三、点击控制台相关的功能按键就行调试…

    2022年8月28日
    4
  • ffplay文档[通俗易懂]

    ffplay文档[通俗易懂]目录目录1简介2描述3选项3.1流说明符3.2通用选项3.3AVOptions3.4主要选择3.5高级选项3.6比赛时4另见5位作者 1简介ffplay[ 选项 ][input_url]2描述FFplay是一个使用FFmpeg库和SDL库的非常简单和便携的媒体播放器。它主要用作各种FFmpegAPI的测试平台。…

    2022年6月17日
    47

发表回复

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

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