处理Cookie Handle Cookie

使用 cookies 在客户端存储数据。

使用 h3 处理 cookie 非常简单。有三个实用程序可以处理 cookie:

  • setCookie 用于将 cookie 附加到响应。
  • getCookie 用于从请求中获取 cookie。
  • deleteCookie 用于从响应中清除 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 的过期日期。
  • expiresDate 对象设置 cookie 的过期日期。
  • path 设置 cookie 的路径。
  • domain 设置 cookie 的域。
  • secure 设置 cookie 的 Secure 标志。
  • httpOnly 设置 cookie 的 HttpOnly 标志。
  • sameSite 设置 cookie 的 SameSite 标志。
相关阅读:utils

在选项中,您可以配置 cookie 标志:

  • maxAge 以秒为单位设置 cookie 的过期日期。
  • expiresDate 对象设置 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,您需要在事件处理程序中使用“deleteCookie”:

ts
import { defineEventHandler, deleteCookie } from 'h3'

app.use(
  defineEventHandler(async (event) => {
    deleteCookie(event, 'name')
  }),
)

实用程序deleteCookiesetCookie的包装器,其值设置为""maxAge设置为0

这将从客户端中删除 cookie。