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 22 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
JavaScript DOM 对象深入了解
Jul 20 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
javascript实现QQ空间相册展示源码
Dec 12 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
vue 自定义提示框(Toast)组件的实现代码
Aug 17 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
利用React Router4实现的服务端直出渲染(SSR)
Jan 07 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
Jan 18 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 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游戏编程25个脚本代码
2011/02/08 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
php 文本文件的读取效率
2012/02/10 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2014年财政所工作总结
2014/11/22 职场文书
中学生思想品德评语
2014/12/31 职场文书
刑事撤诉申请书
2015/05/18 职场文书
二十年同学聚会感言
2015/07/30 职场文书
2016中考冲刺决心书
2015/09/22 职场文书