Express Cookie 的基本使用

一、Cookie 简介

● cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域 名的时候共享数据。

● HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何 关系的。

● Cookie 是一个简单到爆的想法:当访问一个页面的时候,服务器在下行 HTTP 报文中, 命令浏览器存储一个字符串; 浏览器再访问同一个域的时候,将把这个字符串携带到上行 HTTP 请求中。第一次访问一个服务器,不可能携带 cookie。 必须是服务器得到这次请求, 在下行响应报头中,携带 cookie 信息,此后每一次浏览器往这个服务器发出的请求,都会 携带这个 cookie。

二、Cookie 特点

● cookie 保存在浏览器本地
● 正常设置的 cookie 是不加密的,用户可以自由看到;
● 用户可以删除 cookie,或者禁用它
● cookie 可以被篡改
● cookie 可以用于攻击
● cookie 存储量很小。未来实际上要被 localStorage 替代,但是后者 IE9 兼容。

三、Cookie 的使用

Express 中要使用 Cookie 的话,我们需要使用 cookie-parser 模块来实现

  1. 安装 cnpm instlal cookie-parser --save
  2. 引入
    var cookieParser = require(‘cookie-parser’);
  3. 设置中间件
    app.use(cookieParser());
  4. 设置
    cookie res.cookie(“name”,‘zhangsan’,{maxAge: 900000, httpOnly: true});
  5. 获取
    cookie req.cookies.name

Cookie 属性说明
在这里插入图片描述
设置 cookie 的几种方法

res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) 
res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true }); 
res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });

获取 cookie

 req.cookies.name 

删除cookie

res.cookie('rememberme', '', { expires: new Date(0)}); 
res.cookie('username','zhangsan',{domain:'.ccc.com',maxAge:0,httpOnly:true});

四、加密 Cookie

  1. 配置中间件的时候需要传参
var cookieParser = require('cookie-parser'); 
app.use(cookieParser('123456'));
  1. 设置 cookie 的时候配置 signed 属性
res.cookie('userinfo','hahaha',{domain:'.ccc.com',maxAge:900000,httpOnly:true,signed:true}); 
  1. signedCookies 调用设置的 cookie
console.log(req.signedCookies)
const express = require("express")
const ejs = require("ejs")
const bodyParser = require("body-parser")
var cookieParser = require('cookie-parser')
const app = new express()// 配置模板引擎
app.engine("html", ejs.__express)
app.set("view engine", "html")// 配置静态web目录
app.use(express.static("static"))// 配置第三方中间件
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
// 配置cookieParser中间件
app.use(cookieParser("zep"))app.get("/", (req, res)=> {// 设置cookie 如果cookie没有过期的话,关闭浏览器后重新打开,cookie仍然还在,不会被销毁res.cookie("username", "张三", {maxAge: 1000*60*60,signed: true})res.send("首页")
})app.get("/article", (req, res) => {// 获取cookielet username = req.cookies.usernameconsole.log(username)res.send("新闻页面--" + username)
})app.get("/user", (req, res) => {// 获取加密的cookielet username = req.signedCookies.usernameres.send("用户页面--" + username)
})app.get("/login", (req, res)=> {console.log(req.query)res.render("login.html",{})
})app.post("/doLogin", (req, res)=> {var body = req.bodyconsole.log(body)res.send("执行提交")
})app.listen(3000)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chapter1-2_Speech_Recognition(LAS)

文章目录1 内容简述2 模型详述2.1 ListenRNN Encoder1D-CNN EncoderSelf-attentinon EncoderDown Sampling2.2 Attend2.3 Spell2.4 Beam Search2.5 Training2.6 Back to Attention本文为李弘毅老师【Speech Recognition - Listen, Attend, Spell】的课程笔记,课程视…

智能车的转弯部分_江西智能搬运平板车铁路轨道运输车-厂家直销

本公司致力发展搬运设备,从公司成立至今一直在做电动平车的研发,从几十千克自动化物流车到成百上千吨都能自行研发制造,取得了优异的业内好评和广大消费者的肯定! BWP型无轨平板车是一种使用特殊的行走机构,能够在较小…

Express Session 的基本使用

一、 Session 简单介绍 session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。 Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上。Session 相比 Cookie 要 更安全一些。由于 Ses…

Chapter1-3_Speech_Recognition(CTC, RNN-T and more)

文章目录1 CTC2 RNN-T3 Neural Transducer4 Monotonic Chunkwise Attention5 小结本文为李弘毅老师【Speech Recognition - CTC, RNN-T and more】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。 下文中用到的图片均来自于李宏毅老师的…

java商城_基于Java,jfinal web框架开发出微信商城,微信分销商城源码分享

项目简介:专门针对微信服务号开发的一套微信商城,微信分销商城,支持商品多规格,支持按地区设置邮费,支持限时打折,订单返现,满减送,满包邮,支持订单打印,订单…

Express 路由模块化以及 Express 应用程序生成器

一、 Express 路由模块化 https://expressjs.com/en/guide/routing.html Express 中允许我们通过 express.Router 创建模块化的、可挂载的路由处理程序。 1、新建一个 user.js 配置如下代码 var express require(express) var router express.Router() router.get(/, fun…

qscrollarea 设置滚动位置_爱剪辑:影视剧滚动字幕片尾,效果竟然如此高端精美...

大家好今天教大家制作滚动字幕片尾这种效果经常在影视剧和自媒体中看到不仅好看精美,而且还高大上快来学习吧~视频教程:爱剪辑:影视剧滚动字幕片尾教程https://www.zhihu.com/video/1174030334688632832移动视频的位置导入视频后&…

iOS 测试三方 KIF 的那些事

一: KIF 三方库的配置 今天的广州天气还不错,原本想试试UI测试的,前几天也了解到很多公司都在用 KIF 这这三方框架!!今天也就试着做做,可就跪在了这个安装上,我用cocopods 导入了 KIF&#xf…

Chapter1-4_Speech_Recognition(HMM)

文章目录1 HMM用在哪里2 HMM的state3 改造成DNN3.1 Tandem3.2 DNN-HMM Hybrid本文为李弘毅老师【Speech Recognition - HMM (optional)】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。其中也涉及到了部分李琳山老师关于HMM的详解&#…

Express 结合 multer 上传图片

一、 Multer 模块介绍 Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用 于上传文件。 它是写在 busboy 之上非常高效。 注意: Multer 不会处理任何非 multipart/form-data 类型的表单数据。 https://www.npmjs.com…

ad19pcb设置恢复默认_条码打印机-斑马产品常用恢复出厂设置

当我们手上拿到条码打印机,遇到一下无法挽回的时候,我们可以选择恢复下出厂设置,这样使打印机还原到出厂,或许是很好的选择,接下来我们看下斑马条码打印机操作方法如下:Zebra 条码打印机恢复出厂1、有面板的…

Chapter1-5_Speech_Recognition(Alignment of HMM, CTC and RNN-T)

文章目录1 为什么需要Alignment2 穷举所有的alignment2.1 HMM的对齐2.2 CTC的对齐2.3 RNN-T的对齐3 小结本文为李弘毅老师【Speech Recognition - Alignment of HMM, CTC and RNN-T (optional)】的课程笔记,课程视频youtube地址,点这里👈(需翻…

mongoose 入门以及 mongoose 实现数据 的增、删、改、查

一、mongoose 介绍 Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose 是 NodeJS 的驱动,不能作为其他语言的驱动。 Mongoose 有两个特点 : 1、通过关系型数据库的思想来设计非关系型数据库 2、基于 mongodb 驱动&…

64位处理器_电脑操作系统的32位和64位有什么区别

想买个新电脑,不知道买 64 位还是 32 位?买了一套视频剪辑软件,发现电脑根本安装不了?这些到底是为什么?对于 Windows7 及以上版本,我们能够很明显知道自己电脑操作系统是 64 位还是 32 位。如果你还不知道…

Chapter1-6_Speech_Recognition(RNN-T Training)

文章目录1 一个alignment概率的计算2 所有alignments概率的计算3 Training4 Inference5 小结本文为李弘毅老师【Speech Recognition - RNN-T Training (optional)】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。 下文中用到的图片均来…

Mongoose 预定义模式修饰符 Getters 与 Setters 自定义修饰符

一、mongoose 预定义模式修饰符 lowercase、uppercase 、trim mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化。 var UserSchemamongoose.Schema({ name:{ type:String, trim:true }, age:Number, status:{ type:Number, default:1 } })二…

微信可以远程控制电脑吗_用微信就能远程控制电脑,这款神器有些厉害

「本期内容标签」安卓 iOS 电脑 小程序 网站 游戏 教程微信确实一步步改变生活,尤其是微信小程序面世以来,可谓是神器一个接一个的出现,很多功能已经和手机app旗鼓相当了。那么,今天说的这款刚推出的微信小程序,实现远…

开源的excel读取库libxls在windows下的编译,且支持中文,全网首发

转载请注明出处:http://www.cnblogs.com/superbi/p/5482516.html 到目前为止,网络和官网上并没有关于libxls在windows下支持中文的教程,也没有现成的二进制文件。 想直接得到结果的请直接拉到最后获取成果,想自己以后遇到类似问题…

Chapter1-7_Speech_Recognition(Language Modeling)

文章目录1 为什么需要Language Model2 N-gram3 Continuous LM3 NN-based LM4 RNN-based LM5 合并LAS和LM5.1 shallow fusion5.2 deep fusion5.3 cold fusion本文为李弘毅老师【Speech Recognition - Language Modeling】的课程笔记,课程视频youtube地址,…

Mongoose 索引、Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法

一、Mongoose 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更 快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询 优化技巧。 mongoose 中除了以前创建索引的方式,我们…