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 相关文章推荐
jQuery 树形结构的选择器
Feb 15 Javascript
url地址自动加#号问题说明
Aug 21 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
JS实现可改变列宽的table实例
Jul 02 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
Apr 11 Javascript
jQuery的层级查找方式分析
Jun 16 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
axios post提交formdata的实例
Mar 16 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 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
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
php源码的安装方法和实例
2019/09/26 PHP
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
酒店管理毕业生自荐信
2013/10/24 职场文书
小学生安全保证书
2014/02/01 职场文书
安全生产先进个人材料
2014/02/06 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
排查整治工作方案
2014/06/09 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript