# Biblioteca `Cookies` da Azion

import DocButton from '~/components/webkit/DocButton.vue';

A biblioteca **Cookies** da Azion fornece funções utilitárias para obter e definir cookies em uma requisição e uma resposta HTTP. Esta biblioteca é útil para lidar com cookies em aplicações da web, garantindo facilidade de uso e consistência.

<DocButton href="/pt-br/documentacao/produtos/azion-lib/visao-geral/" label="Saiba mais sobre as Azion Libraries" kind="secondary" size="medium" />

---

## Uso

### `getCookie`

Recupera o valor de um cookie específico da requisição HTTP.

**Parâmetros**:

| Parâmetro         | Tipo                | Descrição                                                                 |
|-------------------|---------------------|-----------------------------------------------------------------------------|
| `req`             | `Request`           | O objeto de requisição HTTP.                                                    |
| `key`             | `string` (opcional) | O nome do cookie a ser recuperado. Se não for fornecido, retorna todos os cookies como um objeto. |
| `prefixOptions`   | `CookiePrefix` (opcional) | O prefixo para o cookie (`'host'` ou `'secure'`).                         |

**Retorno**:

| Tipo                                | Descrição                                                                 |
|-------------------------------------|-----------------------------------------------------------------------------|
| `string \| undefined \| Record<string, string>` | O valor do cookie, ou um objeto com todos os cookies se nenhuma chave for fornecida.          |

**Exemplo**:

```typescript
import { setCookie } from 'azion/cookies';
import type { CookieOptions } from 'azion/cookies';

const options: CookieOptions = { maxAge: 3600 };
const res = setCookie(response, 'my-cookie', 'cookie-value', options);
```

### `setCookie`

Configura um cookie na resposta HTTP.

**Parâmetros**:

| Parâmetro | Tipo | Descrição |
|-----------|------|-------------|
| `res` | `Response` | O objeto de resposta HTTP. |
| `name` | `string` | O nome do cookie. |
| `value` | `string` | O valor do cookie. |
| `options` | `CookieOptions` (opcional) | Opções adicionais para definir o cookie. |

O tipo `CookieOption` usado para o parâmetro `options` é um objeto com as seguintes propriedades:

| Opção | Tipo | Descrição |
|--------|------|-------------|
| `maxAge` | `number` | Opcional. A idade máxima do cookie, em segundos. |
| `expires` | `Date` | Opcional. A data de expiração do cookie. |
| `path` | `string` | Opcional. O caminho no servidor para o qual o cookie será enviado. |
| `domain` | `string` | Opcional. O domínio para o qual o cookie é válido. |
| `secure` | `boolean` | Opcional. Se verdadeiro, o cookie será transmitido apenas sobre HTTPS seguro. |
| `httpOnly` | `boolean` | Opcional. Se verdadeiro, o cookie é inacessível à API Document.cookie do JavaScript. |
| `sameSite` | `'Strict' \| 'Lax' \| 'None'` | Opcional. Controla como o cookie é enviado com requisições entre sites. |

**Exemplo**:

```typescript
import { setCookie } from 'azion/cookies';
import type { CookieOptions } from 'azion/cookies';

const options: CookieOptions = { maxAge: 3600 };
const res = setCookie(response, 'my-cookie', 'cookie-value', options);
```