Hono: Manage cookies

Hono provides utilities to help you handle cookies.

The basic ones are getCookie(), setCookie() and deleteCookie():

import { getCookie, setCookie, deleteCookie } from 'hono/cookie'
setCookie('username', 'joe')

You can set all the cookie options passing an object as 3rd parameter:

setCookie('username', 'Flavio', { 
  domain: 'thevalleyofcode.com', 
  path: '/administrator', 
  expires: new Date(Date.now() + 900000), 
  httpOnly: true 
})

The most useful parameters you can set are:

ValueDescription
domainThe cookie domain name
expiresSet the cookie expiration date. If missing, or 0, the cookie is a session cookie
httpOnlySet the cookie to be accessible only by the web server. See HttpOnly
maxAgeSet the expiry time relative to the current time, expressed in milliseconds
pathThe cookie path. Set to ’/’ to apply to the whole site
secureMarks the cookie HTTPS only
signedSet the cookie to be signed
sameSiteValue of SameSite

Get a cookie using:

const cookie = getCookie('username')

A cookie can be cleared with:

deleteCookie('username')

Then we have 2 more functions to work with signed cookies:

import { getSignedCookie, setSignedCookie } from 'hono/cookie'

They work in the same way but have a signature so you can detect if the client modified the cookie.

Lessons in this unit:

0: Introduction
1: Your first Hono app
2: The Request object
3: Send a response to the client
4: ▶︎ Manage cookies
5: Work with HTTP headers
6: Handling redirects
7: Routing
8: JSX templates
9: Middleware
10: Hono on Node.js
Want to learn more? Check out our courses