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/ .学习网站上有对应 ...
随机推荐
- 用jquery得到select选中的值
<select class="pushtype" name="push_type" onchange="pushType(this)" ...
- 1.2.2 Excel中手机号或身份证号批量加密星号
在对应的单元格中我们输入公式: =LEFT(C4,3)&"****"&RIGHT(C4,4)或=MID(C4,1,3)&"****"&a ...
- Pod配置PersistentVolumeClaim详解
1,创建PersistentVolume kind: PersistentVolume apiVersion: v1 metadata: name: task-pv-volume labels: ty ...
- FreeBsd网络性能优化方案sysctl
以下是阿盛的配置 sysctl net.inet.tcp.msl= sysctl net.inet.tcp.mssdflt= sysctl net.inet.tcp.minmss= sysctl ne ...
- Java中常用类(包装类扩展知识)
Java常用类有哪些? 八大基本数据类型的包装类 包装类均位于java.lang包中,包装类和基本数据类型的对应关系如下表: 基本数据类型 包装类 byte Byte boolean Boolean ...
- HTML---仿网易新闻登录页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS笔试题
如何实现移动端9宫格 如何实现移动端下列8宫格 实现移动端图片画廊CSS样式 写一个简单的animation的css动画 美化select,radio,range样式,只需考虑谷歌浏览器,下面给出的是 ...
- (Python基础)2 or 3?
对于大部分初学者来说,该选择Python2.x还是Python3.x?我想这个问题都是普遍初学者的疑问.我的回答当然是学Python3.x的啦.因为下面有段官方原话是这样子说的 ,大概意思呢就是Pyt ...
- java实现pdf按页切分成图片
package com.ces.component.pictrueCut.entity; import java.awt.Image; import java.awt.Rectangle; impor ...
- uva-10670-贪心
题意:从N开始,目标是把数字变成M,每个代理有俩个操作,让数字减一或者变成一半,求最小的花费 能减半就减半. #include <string> #include<iostream& ...