Examples

Handle Cookie

Use cookies to store data on the client.

Handling cookies with h3 is straightforward. There is three utilities to handle cookies:

  • setCookie to attach a cookie to the response.
  • getCookie to get a cookie from the request.
  • deleteCookie to clear a cookie from the response.

To set a cookie, you need to use setCookie in an event handler:

import { setCookie } from "h3";

app.use(async (event) => {
  setCookie(event, "name", "value", { maxAge: 60 * 60 * 24 * 7 });
  return "";
});

In the options, you can configure the cookie flags:

  • maxAge to set the expiration date of the cookie in seconds.
  • expires to set the expiration date of the cookie in a Date object.
  • path to set the path of the cookie.
  • domain to set the domain of the cookie.
  • secure to set the Secure flag of the cookie.
  • httpOnly to set the HttpOnly flag of the cookie.
  • sameSite to set the SameSite flag of the cookie.
Read more in Utils.

To get a cookie, you need to use getCookie in an event handler.

import { getCookie } from "h3";

app.use(async (event) => {
  const name = getCookie(event, "name");

  // do something...

  return "";
});

This will return the value of the cookie if it exists, or undefined otherwise.

To delete a cookie, you need to use deleteCookie in an event handler:

import { deleteCookie } from "h3";

app.use(async (event) => {
  deleteCookie(event, "name");
  return "";
});

The utility deleteCookie is a wrapper around setCookie with the value set to "" and the maxAge set to 0.

This will erase the cookie from the client.