Merge pull request #2044 from node-red-hitachi/cookie_encoding

Allow http request node to avoid encoding cookie
This commit is contained in:
Nick O'Leary
2019-02-04 20:39:05 +00:00
committed by GitHub
2 changed files with 135 additions and 17 deletions

View File

@@ -148,16 +148,9 @@ module.exports = function(RED) {
};
}
if (opts.headers.hasOwnProperty('cookie')) {
var cookies = cookie.parse(opts.headers.cookie);
var cookies = cookie.parse(opts.headers.cookie, {decode:String});
for (var name in cookies) {
if (cookies.hasOwnProperty(name)) {
if (cookies[name] === null) {
// This case clears a cookie for HTTP In/Response nodes.
// Ignore for this node.
} else {
opts.jar.setCookie(name + '=' + cookies[name], url);
}
}
opts.jar.setCookie(cookie.serialize(name, cookies[name], {encode:String}), url);
}
delete opts.headers.cookie;
}
@@ -168,9 +161,15 @@ module.exports = function(RED) {
// This case clears a cookie for HTTP In/Response nodes.
// Ignore for this node.
} else if (typeof msg.cookies[name] === 'object') {
opts.jar.setCookie(name + '=' + msg.cookies[name].value, url);
if(msg.cookies[name].encode === false){
// If the encode option is false, the value is not encoded.
opts.jar.setCookie(cookie.serialize(name, msg.cookies[name].value, {encode: String}), url);
} else {
// The value is encoded by encodeURIComponent().
opts.jar.setCookie(cookie.serialize(name, msg.cookies[name].value), url);
}
} else {
opts.jar.setCookie(name + '=' + msg.cookies[name], url);
opts.jar.setCookie(cookie.serialize(name, msg.cookies[name]), url);
}
}
}