Como definir cookies no navegador?
sobes.tech IA
Resposta da IA
Pode definir cookies no navegador de várias maneiras.
-
Através do cabeçalho HTTP
Set-Cookiedo servidor. Este é o método principal para definir cookies, que ocorre no lado do servidor. O servidor envia ao navegador o cabeçalhoSet-Cookie, que instrui o navegador a guardar um par chave-valor específico.Exemplo de resposta HTTP do servidor:
HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly Set-Cookie: settings=theme=dark&lang=en; Path=/Parâmetros do cabeçalho
Set-Cookie:name=value: Nome e valor do cookie. Parâmetro obrigatório.Expires=<date>: Data e hora de expiração do cookie. Se não especificado, o cookie é de sessão e é eliminado ao fechar o navegador. Formato de data - RFC 1123.Max-Age=<seconds>: Tempo máximo de vida do cookie em segundos. Tem prioridade sobreExpires.Domain=<domain>: Domínio para o qual o cookie está disponível. Por padrão, o domínio atual (mas não subdomínios).Path=<path>: Caminho no servidor para o qual o cookie está disponível. Por padrão, o caminho raiz/.Secure: Indicador de que o cookie deve ser enviado apenas via HTTPS.HttpOnly: Indicador de que o cookie não é acessível via JavaScript através dedocument.cookie. Protege contra ataques XSS.SameSite=<mode>: Controla o envio do cookie em requisições entre sites. Valores possíveis:Strict,Lax(padrão),None.
-
Através do JavaScript no lado do cliente. Com o objeto
document.cookiepode-se ler, escrever e eliminar cookies.Escrita de cookie:
// Definir cookie simples document.cookie = "username=johndoe"; // Definir cookie com expires, path, secure e SameSite=Lax const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 dias document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Leitura de cookies:
// document.cookie devolve uma string com todos os cookies acessíveis no formato "chave1=valor1; chave2=valor2; ..." console.log(document.cookie);Eliminação de cookie: Para eliminar um cookie, deve-se defini-lo com uma data de expiração no passado.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // Definir expires no passadoÉ importante que ao eliminar, especifiquem-se os mesmos parâmetros
pathedomain(se foram definidos), que na criação.SameSitetambém deve coincidir para uma eliminação correta. -
Com bibliotecas JavaScript de terceiros. Existem bibliotecas que facilitam o trabalho com cookies (por exemplo,
js-cookie). Elas fornecem uma API mais fácil para definir, obter e eliminar cookies.Exemplo com
js-cookie:// Inclusão da biblioteca // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Definir cookie Cookies.set('username', 'johndoe'); // Definir cookie com opções Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires em dias // Obter cookies const username = Cookies.get('username'); // Retorna 'johndoe' ou undefined const allCookies = Cookies.get(); // Retorna um objeto com todos os cookies // Eliminar cookies Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // Especificar path se foi definido na criação