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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • windows平台下,TensorFlow的安装、卸载以及遇到的各种错误

    windows平台下,TensorFlow的安装、卸载以及遇到的各种错误本人在安装TensorFlow过程中,遇到了很多问题,现将安装成功过程中,遇到的问题以及解决方法总结如下:TensorFlow安装要求:windows系统64位、python3.5版本、TensorFlow1.1或TensorFlow1.2;安装的具体过程:1、安装anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archiv…

  • python内存回收的问题

    python内存回收的问题

    2021年11月27日
  • mysql分页查询如何优化_mysql分页查询优化

    mysql分页查询如何优化_mysql分页查询优化测试实验1.直接用limitstart,count分页语句,也是我程序中用的方法:select*fromproductlimitstart,count当起始页较小时,查询没有性能问题,我们分别看下从10,100,1000,10000开始分页的执行时间(每页取20条),如下:select*fromproductlimit10,200.016秒sele…

  • 电源设计LDO和DCDC[通俗易懂]

    电源设计LDO和DCDC[通俗易懂]欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗Ctrl+B斜体Ctrl+I引用Ctrl

  • 某公司SQL Server 数据库备份方案[通俗易懂]

    某公司SQL Server 数据库备份方案[通俗易懂]概述为了保证XXX公司物业系统数据库的安全,稳定性,数据库管理员应定期备份数据库,采用良好的备份策略,一方面维持数据的安全性;另一方面要保证数据库稳定,顺畅,高效的运行。尽最大的努力减少由于数据丢失或损坏造成的业务系统宕机,须从备份方面做好基本的保障工作。一、备份介绍1.1备份方式SQLServer支持3种类型的备份:完全数据库备份,差异数据库备份,事务日志备份。1.1.1…

  • 织梦自定义表单 在线报名 在线预约听语音

    织梦自定义表单 在线报名 在线预约听语音

发表回复

您的电子邮箱地址不会被公开。

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