Cookies
Funções da Azion Lib do pacote azion que leem cookies de uma requisição HTTP e definem cookies em uma resposta HTTP.
O módulo azion/cookies é a biblioteca da Azion Lib para cookies HTTP. As duas funções dele leem cookies do cabeçalho Cookie de um Request e definem um cookie em um Response pelo cabeçalho Set-Cookie. Elas não fazem chamadas de API, não precisam de token e retornam o resultado diretamente.
Instale o pacote:
O pacote azion recebe apenas correções de bugs, e a manutenção dele termina em dezembro de 2026.
As funções recebem os objetos padrão Request e Response. Elas rodam no Node.js e rodam dentro de uma function servida localmente com o azion dev. Os exemplos de getCookie e setCookie são módulos ES em TypeScript executados no Node.js, e eles importam tipos com import type. As duas funções também são propriedades do export padrão, cookies.
getCookie
Lê um cookie pelo nome, ou todos os cookies da requisição.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
req | Request | Sim | A requisição que carrega o cabeçalho Cookie. |
key | string | Não | O nome do cookie a ler. Sem ele, a função retorna todos os cookies. Obrigatório quando você passa prefixOptions. |
prefixOptions | CookiePrefix | Não | O prefixo do nome do cookie. Com host, a função lê __Host-<key>; com secure, ela lê __Secure-<key>. |
Retorna o valor do cookie como string quando você passa key, ou undefined quando a requisição não tem um cookie com esse nome. Sem key, retorna um Record<string, string> com todos os cookies, cada nome como a requisição o envia, com o prefixo incluído.
Este exemplo monta uma requisição com três cookies e lê um cookie, todos os cookies, um cookie __Host- e um cookie que não existe:
Saída:
setCookie
Define um cookie em uma resposta.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
res | Response | Sim | A resposta em que o cookie é definido. |
key | string | Sim | O nome do cookie. |
value | string | Sim | O valor do cookie. |
options | CookieOptions | Não | Os atributos do cookie. |
Retorna o Response com um cabeçalho Set-Cookie que contém o cookie e os atributos dele. Retorne essa resposta do seu handler, para que o cliente receba o cookie.
Com prefix: 'host', defina também path: '/'. Sem ele, setCookie lança um erro com a mensagem path option must be set to / when using host prefix.
Este exemplo define um cookie com cinco atributos, depois um cookie com o prefixo host, e imprime cada cabeçalho Set-Cookie:
Saída:
Ler e definir cookies em uma function
Esta function lê o cookie theme, usa light quando a requisição não tem esse cookie e define um cookie visited na resposta:
Servida localmente com azion dev, uma requisição com cabeçalho Cookie e uma requisição sem ele retornam:
Tipos
O módulo exporta estes tipos. Importe-os com import type.
CookieOptions
Os atributos que setCookie grava no cookie.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
domain | string | Não | O domínio para o qual o cookie é válido. |
expires | Date | Não | A data de expiração do cookie. |
httpOnly | boolean | Não | Com true, adiciona o atributo HttpOnly, que deixa o cookie fora do alcance do JavaScript no navegador por document.cookie. |
maxAge | number | Não | A idade máxima do cookie, em segundos. Gravado como Max-Age. |
path | string | Não | O caminho para o qual o cliente envia o cookie. Deve ser / com prefix: 'host'. |
sameSite | 'Lax' | 'None' | 'Strict' | Não | Como o cliente envia o cookie com requisições entre sites. |
secure | boolean | Não | Com true, adiciona o atributo Secure, para que o cliente envie o cookie apenas por HTTPS. |
prefix | CookiePrefix | Não | O prefixo do nome. Com host, o nome do cookie começa com __Host-. |
partitioned | boolean | Não | Com true, adiciona o atributo Partitioned. |
CookiePrefix
O prefixo de nome que getCookie lê e setCookie grava.