node.js中express使用cookie-parser 和 cookie-session处理会话
cookie-parser 中间件用来解析客户端传过来的cookie,cookie-session 中间件用来建立基于cookie的会话session。
一、安装 cookie-parser 和 cookie-session
npm install cookie-parser
npm install cookie-session
二、使用 cookie-parser 解析
const express = require('express');
const cookieParser = require('cookie-parser');
let app = express();
app.listen(8888);
//使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser());
app.get('/', function (req, res) {
//获取cookie信息
console.log('Cookies: ', req.cookies);
//设置cookie
//参数一表示,cookie名称
//参数二表示,cookie的值
//参数三表示,cookie的配置选项
// domain 域名
// path 路径
// expires 过期时间
// maxAge 有效时间(以毫秒为单位)
// httpOnly 只能由web服务器访问
// secure 是否与https一起使用
// signed 是否签名
res.cookie('test', 'test', {path: '/', expires: new Date(Date.now() + 3600 * 1000)});
res.cookie('name', 'xiaoxu', {maxAge: 3600 * 1000});
res.end();
});
为了防止cookie信息被篡改,我们可以设置签名。
const express = require('express');
const cookieParser = require('cookie-parser');
let app = express();
app.listen(8888);
//使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser('fermtp34n537m3o450'));
app.get('/', function (req, res) {
//获取cookie信息
console.log('cookies: ', req.cookies);
//设置使用签名
res.cookie('test', 'test', {signed: true});
//使用签名的cookie通过下面方式获取
console.log('signedCookies: ', req.signedCookies);
res.end();
});
二、使用 cookie-session 处理会话
注意cookie-session中间件是基于cookie的,会把会话信息存储在cookie里。
const express = require('express');
const cookieSession = require('cookie-session');
let app = express();
app.listen(8888);
app.use(cookieSession({
//会话在cookie中的名称
name: 'session',
//用于签名的密钥
keys: ['j239r5ndgffte'],
//cookie过期时间,单位毫秒
maxAge: 3600 * 1000
}));
app.get('/', function (req, res) {
//获取会话数据
console.log(req.session);
//设置会话数据
req.session.name = 'xiaoxu';
req.session.age = 24;
req.session.sex = '男';
res.end();
});
node.js中express使用cookie-parser 和 cookie-session处理会话的更多相关文章
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中express框架的基本使用
express是一个基于node.js平台的,快速,开放,极简的web开发框架. 一.安装 express npm install express --save 二.简单使用 express //引入 ...
- node.js中express的Router路由的使用
express中的Router作用就是为了方便我们更好的根据路由去分模块.避免将所有路由都写在入口文件中. 一.简单的使用Router const express = require('express ...
- node.js中 express + multer 处理文件上传
multer中间件,可以很方便的结合express处理用户表单上传的文件. 一.安装multer npm install multer 二.处理单个文件上传 const express = requi ...
- Cookie和Session在Node.JS中的实践(二)
Cookie和Session在Node.JS中的实践(二) cookie篇在作者的上一篇文章Cookie和Session在Node.JS中的实践(一)已经是写得算是比较详细了,有兴趣可以翻看,这篇是s ...
- Cookie和Session在Node.JS中的实践(三)
Cookie和Session在Node.JS中的实践(三) 前面作者写的COOKIE篇.SESSION篇,算是已经比较详细的说明了两者间的区别.机制.联系了.阅读时间可能稍长,因为作者本身作图也做了不 ...
- 在node.js中使用COOKIE
node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...
- 配置node.js中的express框架
玩node.js,不玩后台那就是杀鸡牛刀,今天没事整理一下以前开发node.js后台的心得 1.首先安装node.js以及cnpm,在这儿我就不说了,看我node.js中的另一篇文章node.js的安 ...
- Node.js中的Session,不要觉得简单哦。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...
随机推荐
- 二、tcp/ip基础知识
一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...
- 虚拟机安装及Oracle安装
1.安装虚拟机(没难度,傻瓜装机) 新建虚拟机 自定义------下一步------- 稍后安装操作系统------下一步 下一步 下一步至完成 然后启动,就可以启动一个系统咯!!! 可以查一下虚拟机 ...
- python运行过程
程序执行过程 PyCodeObject:PyCodeObject则是Python编译器真正编译成的结果. 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Pyt ...
- udev example -- detect usb and write test file
之前学习了下Udev,就随便做了个测试小程序.....设计什么的也没考虑,就实现了一个基本功能,插入U盘,识别,循环检测到有特定文件后,就然后往U盘里面写数据,插拔多次,都能正常工作. 里面的warn ...
- rabbitmq (二) 持久化
默认情况下rabbitmq 是根据消费者多少依次投递,投递后就删除消息. 消息不会重复投递给不同的消费者. 消费者如果遇到长时间的任务,会执行完一个消息之后再执行下一个消息, 消费者持久化: 如果一个 ...
- leetcode20:有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...
- java并发编程目录
java并发编程目录 Java多线程基础:进程和线程之由来 JAVA多线程实现的四种方式 Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition Jav ...
- [UnityShader基础]03.透明度混合
如果要渲染半透明物体,那么就需要用到透明度混合. 需要注意的有这几点: 1.设置标签:Tags { "Queue"="Transparent" "Ig ...
- LVM逻辑卷疑问?
创建完逻辑卷后,删除以/dev/vdb1和/dev/vdb2为基础的分区后,逻辑卷依然生效???
- 使用Nexus2搭建Maven本地仓库
由于OS为WindowsXP,而Nexus3forWindows为x64版本,只能选择安装nexus2了. Windows(x86)平台,Nexus Repository Manager OSS 2. ...