node.js cookie-parser之parser.js_Javascript教程-查字典教程网
node.js cookie-parser之parser.js
node.js cookie-parser之parser.js
发布时间:2016-12-30 来源:查字典编辑
摘要:cookie-parser的作用,官方的说法是:ParseCookieheaderandpopulatereq.cookieswithano...

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教程学习
    编程开发子分类