48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
/* Author: Ward Truyen
|
|
* Version: 1.0.0
|
|
* About: Cookie data managing
|
|
*/
|
|
|
|
const POST_COOKIE_DATA = "; SameSite=strict; Secure"; // add domain here?
|
|
|
|
function getCookie(name, defaultValue = undefined){
|
|
if(name === null || name === undefined || typeof name != "string" || name == ''){
|
|
console.log('error: cookie needs a name');
|
|
return;
|
|
}
|
|
let pair = document.cookie.split(/; */).find((row) => row.startsWith(name + '='))
|
|
//console.log("cookie pair: ", pair);
|
|
if(pair === undefined)
|
|
return defaultValue;
|
|
else
|
|
return pair.split('=')[1];
|
|
}
|
|
|
|
function setCookie(name, value = 1,days = 7){
|
|
let date = new Date();
|
|
date.setDate(date.getDate() + days); // add x days to date
|
|
document.cookie = name + "=" + value + "; expires=" + date.toUTCString() + POST_COOKIE_DATA;
|
|
}
|
|
|
|
function removeCookie(name){
|
|
document.cookie = name + "=0; max-age=-1" + POST_COOKIE_DATA;
|
|
}
|
|
|
|
function doCookiesWork(){
|
|
const name = "testCookie";
|
|
setCookie(name);
|
|
let itWorks = getCookie(name) !== undefined;
|
|
if( itWorks ){
|
|
removeCookie(name);
|
|
}
|
|
return itWorks;
|
|
}
|
|
|
|
// removeCookie("test1");
|
|
// removeCookie("test2");
|
|
// removeCookie("test3");
|
|
//
|
|
// setCookie("test1");
|
|
// setCookie("test2");
|
|
// setCookie("test3");
|