반응형

 

트러블

도메인과 서브도메인에 프론트와 백을 호스팅해준후에

로그인이 잘되고 쿠키도 잘 받아올수있었다. 

그런데 이제 로그아웃할때 로그인시 받았던 쿠키를 삭제해주는 함수가 먹히지않았다. 

deleteCookie('Authorization');

 

cookies-next 라이브러리의 deleteCookie 함수인데 로컬에서 할때는 쿠키이름만 넣고도 잘 지워져서 호스팅후에도 문제없이 잘동작할줄 알았는데 로그아웃을 아무리 눌러도 쿠키가 지워지지않았다. 

 

원인

찾아보니 쿠키를 삭제할때 서버에서 받은쿠키의경우 domain 이나 path 같은 여러 세팅들도 넣어줘야 삭제가 된다는것을 알았다. 

 

해결

변경후 쿠키삭제 코드

 const deleteCookie = (name:string) => {
      setCookie(name, '', { 
        domain: '.soolae-server.shop', 
        path: '/', 
        maxAge: -1 
      });
    };
    
    
    deleteCookie('Authorization');

쿠키를 만료시간으로 세팅시켜서 쿠키를 없애주는 deleteCookie함수를 새로 만들어주었다. 

가운데 ' ' 이 공백으로 쿠키의 내용을 지우고 세팅을 도메인으로 설정해주면서 maxAge를 -1로 바꿔서 즉시 만료되도록해서 쿠키를 지워주게 된다.

 

요약 

서버에서 받은 쿠키는 도메인이나 path 의 설정이있어서 deleteCookie같은 메서드로 지워지지않는다.

지우기위해서 옵션을 넣어주거나 해당쿠키의 만료시간을 변경시키는방법으로 지워줄수있다.

반응형

+ Recent posts