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 面向对象编程基础:封装
Aug 21 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
js实现的点击div区域外隐藏div区域
Jun 30 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
Mar 02 Javascript
javascript随机显示背景图片的方法
Jun 18 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 Javascript
js实现新年倒计时效果
Dec 10 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 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 curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python中replace方法实例分析
2014/08/20 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python3实现微型的web服务器
2019/09/03 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
什么是Python变量作用域
2020/06/03 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
英国计算机商店:Technextday
2019/12/28 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
会计岗位职责范本
2014/03/07 职场文书
高中教师考核方案
2014/05/18 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
考勤制度通知
2015/04/25 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
校运会班级霸气口号
2015/12/24 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书