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.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.