node.js cookie-parser之parser.js

 更新时间:2016年06月06日 11:59:42   作者:Coolicer  
这篇文章主要介绍node.js cookie-parser之parser.js,讲解的比较详细,需要的朋友可以参考下。

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的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nodejs从有门道无门菜鸟起飞必看教程

    Nodejs从有门道无门菜鸟起飞必看教程

    下面小编就为大家带来一篇Nodejs从有门道无门菜鸟起飞必看教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • NodeJS学习笔记之MongoDB模块

    NodeJS学习笔记之MongoDB模块

    nodejs是个强大的平台,有基本功能,而且可以挂很多模块。我们现在需要和mongodb连接的驱动,就类似比如mysql的java驱动一样。nodejs有好几个mongodb的第三方驱动。和jdbc不一样,没有标准。所以需要到驱动的网站上去了解学习怎么使用它访问mongodb。
    2015-01-01
  • node.js中的favicon.ico请求问题处理

    node.js中的favicon.ico请求问题处理

    本文记录了在项目中使用node.js请求favican.ico的时候会出现2条请求,浪费资源,经过一番改进,记录下来过程,以后注意。
    2014-12-12
  • Node.js 阻塞与非阻塞的实现

    Node.js 阻塞与非阻塞的实现

    本文主要介绍了Node.js中阻塞和非阻塞调用之间的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 解决使用node命令提示:'node'不是内部或外部命令,也不是可运行的程序

    解决使用node命令提示:'node'不是内部或外部命令,也不是可运行的程序

    最近在工作中遇到了个常见的问题,分享给大家,这篇文章主要给大家介绍了关于如何解决使用node命令提示:'node'不是内部或外部命令,也不是可运行的程序的相关资料,需要的朋友可以参考下
    2023-02-02
  • nodejs操作mongodb的增删改查功能实例

    nodejs操作mongodb的增删改查功能实例

    这篇文章主要介绍了nodejs操作mongodb的增删改查功能,简单分析了mongodb模块的安装并结合实例形式分析了nodejs操作mongodb数据库进行增删改查的相关实现技巧,需要的朋友可以参考下
    2017-11-11
  • node脚手架搭建服务器实现token验证的方法

    node脚手架搭建服务器实现token验证的方法

    这篇文章主要介绍了node脚手架搭建服务器实现token验证的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • node微信开发之获取access_token+自定义菜单

    node微信开发之获取access_token+自定义菜单

    这篇文章主要介绍了node微信开发之获取access_token+自定义菜单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Node.js包管理器npm的具体使用

    Node.js包管理器npm的具体使用

    Node.js安装包中都带有一个重要的工具 包管理器npm,本文主要介绍了Node.js包管理器npm的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Node.js中读取TXT文件内容fs.readFile()用法

    Node.js中读取TXT文件内容fs.readFile()用法

    在本篇文章中我们给大家分享一下Node.js中读取TXT文件内容以及fs.readFile()的用法,需要的朋友们可以参考下。
    2018-10-10

最新评论