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/ .学习网站上有对应 ...
随机推荐
- dubbo 基础入门
一.什么是dubbo? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,说白了就是个远程服务调用的分布式框架. dubbo产生的背景 ① 单一 ...
- JVM的基本结构及其各部分详解(二)
3.2 栈帧组成之操作数栈 操作数栈是栈帧的主要内容之一,它主要用于保存计算过程中的中间结果,同时作为计算过程中变量临时的存储空间. 操作数栈也是一个先进后出的数据结构,只支持入栈和出栈两种操作,许多 ...
- randrange()和random() 函数
描述 randrange() 方法返回指定递增基数集合中的一个随机数,基数缺省值为1. 语法 以下是 randrange() 方法的语法: impot random random.randrange ...
- USB HID设备报告描述符详解(转)
转自:http://group.ednchina.com/93/198.aspx. 参考:USB HID usage table 概述: 报告在这里意思是数据传输(data transfer),而 ...
- Excel技巧--巧用差异化插入空行
假设有上面这一列,要求在不同城市之间插入一空行相隔开.数据少的时候可以手动操作,但数据量大时,就需要以下技巧: 1.复制该列(除去标题),并粘贴到右侧一列,但上方要隔开一个单元格B2: 2.将这两列选 ...
- 批处理关闭防火墙.bat
批处理关闭防火墙.bat @echo offecho 用批处理关闭防火墙,包括家庭和工作网络位置.公用网络位置设置.netsh firewall set opmode mode=disable pro ...
- 部署MySQL自动化运维工具inception+archer
***************************************************************************部署MySQL自动化运维工具inception+a ...
- vue 一些可以优化的地方
第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList() }, watch: { searchInputValue(){ this.fetchPo ...
- VS 代码片段集
片段1:用于线程执行代码,耗时操作时加载Loging; <?xml version="1.0" encoding="utf-8"?> <Cod ...
- 性能测试day05_Jmeter学习
今天来学习下jmeter这个性能测试工具,虽然说性能测试最主要的是整个性能的思路,但是也少不了工具的帮忙,从以前主流的LR到jmeter的兴起,不过对于性能测试来说,个人感觉jmeter比较适合接口性 ...