使用 h3 处理 cookie 非常简单。有三个实用程序可以处理 cookie:
setCookie
用于将 cookie 附加到响应。getCookie
用于从请求中获取 cookie。deleteCookie
用于从响应中清除 cookie。
设置 Cookie
要设置 cookie,您需要在事件处理程序中使用 setCookie
:
ts
import { defineEventHandler, setCookie } from 'h3'
app.use(
defineEventHandler(async (event) => {
setCookie(event, 'name', 'value', { maxAge: 60 * 60 * 24 * 7 })
}),
)
在选项中,您可以配置 cookie 标志:
maxAge
以秒为单位设置 cookie 的过期日期。expires
以Date
对象设置 cookie 的过期日期。path
设置 cookie 的路径。domain
设置 cookie 的域。secure
设置 cookie 的Secure
标志。httpOnly
设置 cookie 的HttpOnly
标志。sameSite
设置 cookie 的SameSite
标志。
相关阅读:utils
在选项中,您可以配置 cookie 标志:
maxAge
以秒为单位设置 cookie 的过期日期。expires
以Date
对象设置 cookie 的过期日期。path
设置 cookie 的路径。domain
设置 cookie 的域。secure
设置 cookie 的Secure
标志。httpOnly
设置 cookie 的HttpOnly
标志。sameSite
设置 cookie 的SameSite
标志。
ts
import { defineEventHandler, getCookie } from 'h3'
app.use(
defineEventHandler(async (event) => {
const name = getCookie(event, 'name')
// do something...
}),
)
如果存在 cookie,则返回其值,否则返回“undefined”。
删除 Cookie
要删除 cookie,您需要在事件处理程序中使用“deleteCookie”:
ts
import { defineEventHandler, deleteCookie } from 'h3'
app.use(
defineEventHandler(async (event) => {
deleteCookie(event, 'name')
}),
)
实用程序deleteCookie
是setCookie
的包装器,其值设置为""
,maxAge
设置为0
。
这将从客户端中删除 cookie。