node.js cookie-parser之parser.js


Posted in Javascript onJune 06, 2016

cookie-parser的作用,官方的说法是:Parse Cookie header and populate req.cookies with an object keyed by the cookie names.我的理解是,转换headers中的cookie并跟req.cookies合并。作为cookie-parser的核心,parser提示了2个函数:signedCookies和JSONCookies,以及它们的帮助函数。

此文到这里也就结束了这个插件,让我们来回顾一下,同时也打开了下一篇关于session的学习。

cookie-parser从客户端取cookie,然后经过express-session(以express为本)的处理。在客户端表示为一个签名后的字符串,在服务端,由于使用了unsign方法,所以能看到解签过的字符。这样一来,所有的迷底都解开了。我们来看看session那段处理cookie的代码吧。 

function setcookie(res, name, val, secret, options) {

  var signed = 's:' + signature.sign(val, secret);

  // ....省略

 

  res.setHeader('set-cookie', header)

}

此处利用set-cookie写入cookie。当客户端发送cookie,此时就用到了parser.js的signedCookies。 

exports.signedCookies = function(obj, secret){

  var cookies = Object.keys(obj); 

  var dec; 

  var key;

  var ret = Object.create(null);

  var val;

 

  for (var i = 0; i < cookies.length; i++) {

    key = cookies[i]; 

    val = obj[key];   

    dec = exports.signedCookie(val, secret); 

  

    if (val !== dec) { 

      ret[key] = dec;

      delete obj[key];

    }

  }

 

  return ret;

};

 

exports.signedCookie = function(str, secret){ 

  return str.substr(0, 2) === 's:'

    ? signature.unsign(str.slice(2), secret)

    : str;

};

在帮助函数signedCookie中,当发现含有s:开始则是签名过的cookie,这时就用了signature.unsign解签。下次,让我们来研究一下session。

以上就是node.js cookie-parser之parser.js的全部内容,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript cookies操作集合
Apr 12 Javascript
浅析JQuery UI Dialog的样式设置问题
Dec 18 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
微信小程序传值以及获取值方法的详解
Apr 29 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
vue-socket.io跨域问题有效解决方法
Feb 11 Javascript
JavaScript实现轮播图特效
Apr 10 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
Jun 06 #Javascript
node.js cookie-parser 中间件介绍
Jun 06 #Javascript
JavaScript 对象字面量讲解
Jun 06 #Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 #Javascript
js获取新浪天气接口的实现代码
Jun 06 #Javascript
浅谈Sublime Text 3运行JavaScript控制台
Jun 06 #Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 #Javascript
You might like
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
理解javascript async的用法
2017/08/22 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
人事任命书范本
2015/09/21 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
python运行脚本文件的三种方法实例
2022/06/25 Python