programing tip

도메인에서 JavaScript 쿠키를 만들고 하위 도메인에서 읽기

itbloger 2020. 8. 28. 07:06
반응형

도메인에서 JavaScript 쿠키를 만들고 하위 도메인에서 읽기


아래는 사용자의 컴퓨터에 12 개월 동안 기록되는 JavaScript 쿠키입니다.

과 같은 기본 도메인에 쿠키를 설정 한 후 example.com사용자가과 같은 하위 도메인을 방문 test.example.com할 경우 "테스트"하위 도메인에서 사용자의 활동을 계속 식별해야합니다.

그러나 현재 코드를 사용하면을 (를) 떠나고 www.example.com방문 하자마자 test.example.com더 이상 "HelloWorld"로 플래그가 지정되지 않습니다.

쿠키를 하위 도메인에서 읽을 수 있도록 누구든지 내 코드를 도와 줄 수 있습니까?

<script type="text/javascript">
  var cookieName = 'HelloWorld';
  var cookieValue = 'HelloWorld';
  var myDate = new Date();
  myDate.setMonth(myDate.getMonth() + 12);
  document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate;
</script>

그냥 설정 domainpath같은 쿠키에 속성 :

<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate 
                  + ";domain=.example.com;path=/";
</script>

원하는 :

document.cookie = cookieName +"=" + cookieValue + ";domain=.example.com;path=/;expires=" + myDate;

RFC 2109에 따라 모든 하위 도메인에서 쿠키를 사용할 수 있도록하려면 .도메인 앞에를 넣어야 합니다.

path = /를 설정하면 지정된 전체 도메인 (일명 .example.com) 내에서 쿠키를 사용할 수 있습니다 .


다음은 작동하는 예입니다.

document.cookie = "testCookie=cookieval; domain=." + 
location.hostname.split('.').reverse()[1] + "." + 
location.hostname.split('.').reverse()[0] + "; path=/"

이것은 위치 개체에서 루트 도메인을 가져와 쿠키를 설정하는 일반적인 솔루션입니다. 그 반대는 하위 도메인이 몇 개 있는지 모르기 때문입니다.


MDN JavaScript 쿠키 프레임 워크를 사용하여 다음을 수행 할 수도 있습니다 .

docCookies.setItem('HelloWorld', 'HelloWorld', myDate, '/', 'example.com');

참고 URL : https://stackoverflow.com/questions/5671451/creating-a-javascript-cookie-on-a-domain-and-reading-it-across-sub-domains

반응형