2023.06.18 15:59
在 Nuxt2 中,如果要使用 cookie,需要引入三方插件,如js-cookie,在 Nuxt3 中,自带了cookie操作的 useCookie 方法,可以很方便的操作 cookie。这样我们就不用为了一个简单的功能引入一个额外的插件,增加不必要的开销。
useCookie() 方法的使用
// 语法
const Cookies = useCookie(name, options)
// 获取 Cookie
const Cookies = useCookie('token')
// 设置 Cookie
Cookies.value = Cookies.value || ''
// 删除 Cookie
cookie.value = undefined || null
第一个参数是设置Cookie值的名字,第二个参数为选项option,接着来看看有那些可选择配置的Cookie参数。(注意:这里只介绍三个常用的)
1,maxAge/expires
这两个参数都是设置Cookie的有效时长的,如果两个参数都不设置,Cookie的值在关闭浏览器的时候将会被清空。两个参数的不同是,maxAge的值是一个数字Number,而expires的值是一个日期对象Date object。
const Cookies = useCookie('token', {
maxAge: 1000 * 60
})
2, httpOnly
这是一个安全设置,如果把httpOnly设置为true,可以对最常见的XSS攻击起到防范作用。
const Cookies = useCookie("token", {
htttpOnly: true
})
3. secure
这也是一个安全设置,如果你的网址不是HTTPS的,并且把secure的值设置为true,那Cookie的值就不会传递给服务端。
const Cookies = useCookie("token", {
secure: true
})
其余的还有domain 、path 、sameSite 、encode、decode 属性设置,都跟安全有关,因为Cookie的设置需要考虑安全性,所以根据服务端需求,尽量设置多的安全性参数。