본문 바로가기
개발/Javascript

Javascript SetCookie GetCookie

by 혈중마라농도 2022. 1. 12.
function getCookie(key) {
  const arg = key + '=';
  const cookieLength = document.cookie.length;
  let i = 0;

  while (i < cookieLength) {
    const j = i + arg.length;
    if (document.cookie.substring(i, j) === arg) {
      let endString = document.cookie.indexOf(';', j);
      if (endString === -1) {
        endString = document.cookie.length;
      }
      return decodeURIComponent(document.cookie.substring(j, endString));
    }
    i = document.cookie.indexOf(' ', i) + 1;
    if (i === 0) break;
  }
  return null;
}

function setCookie(key, value, expires, domain, path = '/', secure = false) {
  let cookieString = key + '=' + encodeURIComponent(value);

  if (expires !== undefined) {
    const date = new Date();
    date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000); // expires in days
    cookieString += '; expires=' + date.toUTCString();
  }

  if (path) {
    cookieString += '; path=' + path;
  }

  if (domain) {
    cookieString += '; domain=' + domain;
  }

  if (secure) {
    cookieString += '; secure';
  }

  document.cookie = cookieString;
}
반응형

댓글