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实现背景墙聚光灯效果示例分享
Mar 02 Javascript
js取模(求余数)隔行变色
May 15 Javascript
jquery中radio checked问题
Mar 16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
windows下vue-cli及webpack搭建安装环境
Apr 25 Javascript
浅析Vue 生命周期
Jun 21 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
js实现简单分页导航栏效果
Jun 28 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
javascript实现文字跑马灯效果
Jun 18 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
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学习之数据类型之间的转换介绍
2011/06/09 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
浅析Python中的for 循环
2016/06/09 Python
浅谈Python的异常处理
2016/06/19 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
python代码中怎么换行
2020/06/17 Python
python实现斗地主分牌洗牌
2020/06/22 Python
文职个人求职信范文
2013/09/23 职场文书
党员承诺践诺书
2014/05/20 职场文书
关于环保的标语
2014/06/13 职场文书
工商管理本科生求职信
2014/07/13 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python