diff --git a/README.md b/README.md index 02199b8..0f88ce0 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ As with all modules you can either pass the constructor function (class) to the // only detect languages that are in the whitelist checkWhitelist: true + // optional set cookie options, reference:[MDN Set-Cookie docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) + cookieOptions: {path:'/'} } ``` diff --git a/src/browserLookups/cookie.js b/src/browserLookups/cookie.js index c328e20..788d3e1 100644 --- a/src/browserLookups/cookie.js +++ b/src/browserLookups/cookie.js @@ -1,14 +1,16 @@ let cookie = { - create: function(name,value,minutes,domain) { + create: function(name,value,minutes,domain,cookieOptions = {path: '/'}) { let expires; if (minutes) { let date = new Date(); date.setTime(date.getTime() + (minutes * 60 * 1000)); - expires = '; expires=' + date.toGMTString(); - } + expires = '; expires=' + date.toUTCString(); + } else expires = ''; domain = domain ? 'domain=' + domain + ';' : ''; - document.cookie = name + '=' + value + expires + ';' + domain + 'path=/'; + cookieOptions = Object.keys(cookieOptions).reduce((acc, key) => acc + ';' + + key.replace(/([A-Z])/g, ($1) => '-' + $1.toLowerCase()) + '=' + cookieOptions[key], '',); + document.cookie = name + '=' + encodeURIComponent(value) + expires + ';' + domain + cookieOptions; }, read: function(name) {