From d34196ff4ebda5b2278ad41ad1e188d0bb38f667 Mon Sep 17 00:00:00 2001 From: Sefa Ilkimen Date: Fri, 24 Nov 2017 18:47:00 +0100 Subject: [PATCH] feature #46: support adding custom cookies --- CHANGELOG.md | 1 + README.md | 16 +++++++++++++++- www/advanced-http.js | 5 ++++- www/cookie-handler.js | 7 +++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9577c7f..d963112 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Feature #44: "getCookieString" method is exposed - Feature #43: added support for content type "application/javascript" on iOS (thanks wh33ler) +- Feature #46: "setCookie" allows adding custom cookies ## v1.8.1 diff --git a/README.md b/README.md index a4ac71e..1409d6b 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,20 @@ Set how long to wait for a request to respond, in seconds. cordova.plugin.http.setRequestTimeout(5.0); ``` +### getCookieString +Returns saved cookies (as string) matching given URL. + +```js +cordova.plugin.http.getCookieString(url); +``` + +### setCookie +Add a custom cookie. Takes a URL, a cookie string and an options object. See [ToughCookie documentation](https://github.com/salesforce/tough-cookie#setcookiecookieorstring-currenturl-options-cberrcookie) for allowed options. + +```js +cordova.plugin.http.setCookie(url, cookie, options); +``` + ### clearCookies Clear the cookie store. @@ -157,7 +171,7 @@ This function was removed in v1.6.2. Domain name validation is disabled automati Remove all cookies associated with a given URL. ```js -cordova.plugin.http.removeCookies(url); +cordova.plugin.http.removeCookies(url, callback); ``` ### post diff --git a/www/advanced-http.js b/www/advanced-http.js index 65d5476..081fb58 100644 --- a/www/advanced-http.js +++ b/www/advanced-http.js @@ -171,8 +171,11 @@ var http = { setDataSerializer: function (serializer) { this.dataSerializer = checkSerializer(serializer); }, + setCookie: function (url, cookie, options) { + cookieHandler.setCookie(url, cookie, options); + }, clearCookies: function () { - return cookieHandler.clearCookies(); + cookieHandler.clearCookies(); }, removeCookies: function (url, callback) { cookieHandler.removeCookies(url, callback); diff --git a/www/cookie-handler.js b/www/cookie-handler.js index d394dc2..2399f96 100644 --- a/www/cookie-handler.js +++ b/www/cookie-handler.js @@ -10,6 +10,7 @@ var cookieJar = new ToughCookie.CookieJar(store); module.exports = { setCookieFromString: setCookieFromString, + setCookie: setCookie, getCookieString: getCookieString, clearCookies: clearCookies, removeCookies: removeCookies @@ -45,6 +46,12 @@ function setCookieFromString(url, cookieStr) { } } +function setCookie(url, cookie, options) { + options = options || {}; + options.ignoreError = false; + cookieJar.setCookieSync(cookie, url, options); +} + function getCookieString(url) { return cookieJar.getCookieStringSync(url); }