아래처럼 js-cookie를 이용하여, 존재하는 쿠키들을 다 받아와 모두 삭제시키는 removeCookies라는 함수를 만들었다.
그런데 이상하게 쿠키 하나가 삭제가 안되는 문제가 있었다.
import Cookies from 'js-cookie'
export const removeCookies = () => {
const cookies = Cookies.get()
for (let cookie in cookies) {
Cookies.remove(cookie)
}
}
js-cookie Readme에 아래처럼 나와있었다.
즉, cookie를 삭제할 때에는 cookie를 set할 때 사용했던 cookie-options들을 두번째 인자로 넣어줘야 한다는 것이었다.
그런데, 나는 backend에서 cookie를 심어주고 있었기에 cookie옵션을 frontend에서 다시 설정해주기 귀찮았다.
그래서 backend에서 응답을 보낼 때 res.clearCookie를 이용해서 없애기로 했다.
async logout(@Req() req, @Res({ passthrough: true }) res: Response) {
res.clearCookie('Authentication', accessOption);
res.clearCookie('Refresh', refreshOption);
}
참고로, accessOption과 refreshOption은 해당 쿠키를 발급할 때 사용했던 cookie 옵션으로 아래와 같은 모습을 띄고 있다.
interface CookieOptions {
maxAge?: number;
signed?: boolean;
expires?: Date;
httpOnly?: boolean;
path?: string;
domain?: string;
secure?: boolean;
encode?: (val: string) => string;
sameSite?: 'none';
}
이제, 정상적으로 모든 쿠키가 삭제 되는 것을 확인 할 수 있었다.
'JavaScript' 카테고리의 다른 글
Session Store vs Cache (0) | 2022.11.17 |
---|---|
원 그리기(각도로 원 좌표(x, y) 구하기) (0) | 2022.11.14 |
[JS] 깊은 복사, 얕은 복사 (깊은 복사 하는 방법) (0) | 2022.08.26 |
Cookie 옵션 설정하기 (feat. iframe cookie 문제 해결) (0) | 2022.07.12 |
커링(Currying) Feat. 커링으로 로그 함수 구현 (0) | 2022.07.04 |