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:
Value | Description |
---|---|
domain | The cookie domain name |
expires | Set the cookie expiration date. If missing, or 0, the cookie is a session cookie |
httpOnly | Set the cookie to be accessible only by the web server. See HttpOnly |
maxAge | Set the expiry time relative to the current time, expressed in milliseconds |
path | The cookie path. Set to ’/’ to apply to the whole site |
secure | Marks the cookie HTTPS only |
signed | Set the cookie to be signed |
sameSite | Value 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 |