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 设置标题的自动翻转
Oct 03 Javascript
javascript 节点遍历函数
Mar 28 Javascript
基于JQuery的日期联动实现代码
Feb 24 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
js实现对table的增加行和删除行的操作方法
Oct 13 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
vue动态设置页面title的方法实例
Aug 23 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中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python利用IPython提高开发效率
2016/08/10 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
秦兵马俑教学反思
2014/02/07 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
Java 多线程并发FutureTask
2022/06/28 Java/Android