JavaScript

[Jquery] Flask 쿠키 삭제 removeCookie - jwt 로그아웃 [Jquery Plugin]

민돌v 2021. 10. 19. 23:08

JWT - Json Web Token은 자체적인 로그아웃 기능(토큰의 회수)가 없기 때문에 로그아웃 기능을 구현하기 위해서는

JWT토큰의 유효시간을 짧게 바꿔줘야했다.

 

하지만 jwt토큰의 유효시간을 줄여줄려면, 서버에서 처리해 준 후 다시 클라이언트에 response를 보내줘야하고 방법이 복잡하다고 느꼈기 때문에,

 

jwt로 발급해준 서버 쿠키의 토큰을 삭제하면 로그아웃이 되지 않을까 생각했고

 

제이쿼리를 이용해서 내 쿠키를 지울 수 있었다.

 

 

removeCookie 사용법


jquery removeCookie를 이용하여 내 쿠키의 토큰을 지울 수 있는데

document.cookie로 브라우저 콘솔로 확인해 보면 쿠키값은 

 

"키=value"로 이루어진 걸 확인 할 수있다.

따라서 removeCooke('토큰 키'. {path: '/'}) 를 해주면 된다.

여기서 path는 클라이언트에서 쿠키에 토큰을 생성할 때 설정해준 경로이고, default는 '/' 이고, 

 

브라우저 관리자메뉴 -> application -> cookie 에서 해당 쿠키의 경로를 확인할 수 있다.

function logout() {
    $.removeCookie('mytoken', {path: '/'});
    window.location.href = '/';
}

 

아래의 에러가 뜨면 제이쿼리 쿠키 스크립트를 추가로 임포트 시켜주면 해결된다.

 

Uncaught TypeError: undefined in removeCookie

https://stackoverflow.com/questions/25882347/uncaught-typeerror-undefined-in-removecookie

 

Uncaught TypeError: undefined in removeCookie

I check and the cookie is there but I got an error of Uncaught TypeError: undefined, below is my code: $('#logout').click(function(){ $.removeCookie("fb_userId"); });

stackoverflow.com

 

 

요고 추가

<script src=" https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

 

 

 

*참고

https://stackoverflow.com/questions/25882347/uncaught-typeerror-undefined-in-removecookie