Após a Lei Geral de Proteção de Dados Pessoais (LGPD) ser decretada e sancionada, o que não falta enquanto você navega pela internet são aqueles avisos ou alertas de uso e armazenamento de dados, principalmente sobre o uso de Cookies. Deixando a parte legislativa sobre proteção de dados um pouco de lado, o que são, afinal de contas, esses cookies?
Os cookies são dados armazenados em arquivos de texto no seu computador. E uma aplicação ou site pode enviar e acessar esses dados através do seu navegador. Isso serve para, por exemplo, armazenar informações sobre sua visita, suas últimas buscas e opções de personalização. Assim, da próxima vez que você acessar o mesmo site, o seu acesso será facilitado e você terá uma experiência melhor na navegação.
Se você deve ou não aceitar todos aqueles alertas de uso de cookies que aparecem, é uma decisão sua. Você pode encontrar mais detalhes sobre isso em diversas reportagens, como essa da CNN: Você deve aceitar o uso de cookies na Internet? É melhor pensar duas vezes. Além disso, tem mais detalhes nesses links:
Como o foco aqui é programação, você vai ver que é possível trabalhar com cookies utilizando apenas JavaScript. Para isso, basta acessar a propriedade document.cookie do navegador. Veja um exemplo simples de como salvar uma informação em um cookie:
document.cookie = "usuario=CiroMoura; SameSite=None; Secure";
Analisando o código, é possível observar que há uma variável “usuario”, que é o nome do cookie que será armazenado junto com o valor “CiroMoura”. Além disso, há outros atributos, como: “SameSite”, que impede o navegador de enviar esse cookie para outros sites; E “Secure”, que informa a opção do cookie ser transmitido apenas por protocolo seguro como https.
Já para ler o valor armazenado em um cookie, é possível utilizar uma função disponibilizada no site da W3Schools:
function getCookie(cname) {
let name = cname + "=";
let ca = document.cookie.split(";");
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
Onde a função recebe o nome do cookie (cname) como parâmetro, cria uma variável “name” com o texto (ou nome do cookie) que será procurado, adicionando também o caractere “=”. Em seguida, divide o conteúdo do cookie em partes, utilizando para isso o caractere “;” e salvando na variável “ca”. Após isso, percorre a variável (vetor) “ca” e busca pelo termo armazenado em “name”. Se algum valor for encontrado, será retornado, caso contrário será retornado apenas “”.
Um exemplo prático, salvando os dados referentes a preferência de cor/tema do usuário, pode ser visto nesse repositório ou direto nessa página.