我们操作cookie的时候使用的是document.cookie,或者是用第三方库来对cookie进行一些操作,诸如js-cookie这样的,为什么没有一个api可以直接获取或操作cookie?
但是现在可以有一个API来操作cookie了,那就是cookieStore
关于cookieStore
cookieStore这个玩意是chrome87版本才出来的,目前对于这个API的文档比较少,MDN上也没有中文的文档,如果你英语阅读能力不错的话可以看看,cookieStore是一个异步API,对于操作cookie是相当方便的
获取
获取某个Cookie
await cookieStore.get({name:"xxx"})
获取domain下的全部cookie
await cookieStore.getAll({ domain: '.baidu.com' })
设置
设置cookie我们可以使用cookieStore.set()
await cookieStore.set({ name: 'YushengSenior', value: true, domain: 'baidu.com' })
// 或者
await cookieStore.set('haha',123321)
删除
在之前,我们想要删除某个cookie需要来设置它的过期时间,才可以使这个cookie失效,现在我们可以用下面的方法来删除某个指定的cookie
await cookieStore.delete('haha')
// 或者
await cookieStore.delete({ name: 'haha' })
监听cookie变化
我们可以监听某个指定的cookie,当cookie被改变或者被删除时做出相对应的操作
cookieStore.addEventListener('change', event => {console.log(event.changed, event.delete)})
参考文档:
Chromium API: developer.chrome.com/docs/extens…
CookieStore: developer.mozilla.org/en-US/docs/…
Http Cookies: developer.mozilla.org/zh-CN/docs/…
Cookie Store API: wicg.github.io/cookie-stor…