JavaScriptですべてのCookieを削除する

1 min read読了の目安(約500字

すべてのcookieのmax-age0にセットすることで全削除できる。TypeScriptも同じ書き方でおk。

function deleteAllCookies() {
  const cookies = document.cookie.split(';')
  for (let i = 0; i < cookies.length; i++) {
    const cookie = cookies[i]
    const eqPos = cookie.indexOf('=')
    const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie
    document.cookie = name + '=;max-age=0'
  }
}

当然だがHttpOnlyなCookieにはクライアントのJavaScriptからアクセスができないので削除もできない。HttpOnlyなCookieを削除したいならサーバー側でmax-age=0にセットしたcookieをクライアントに返すことになる。