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得到XML某节点的子节点个数的脚本
Oct 11 Javascript
js 动态选中下拉框
Nov 26 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
微信小程序如何获取群聊的openGid以及名称详解
Jul 17 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
基于vue中的scoped坑点解说
Sep 04 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
CI框架给视图添加动态数据
2014/12/01 PHP
php 使用array函数实现分页
2015/02/13 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
Python守护线程用法实例
2017/06/23 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python3实现飞机大战
2020/11/29 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
白莲教口号
2014/06/18 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
辞职信标准格式
2015/02/27 职场文书
死亡诗社观后感
2015/06/05 职场文书
python中tkinter复选框使用操作
2021/11/11 Python