Como limpar os cookies de sessão após o logout?

  • GDPR
  • Cookies
  • Como limpar os cookies de sessão após o logout?

O WordPress gera alguns cookies de sessão que, embora não armazenem dados pessoais ou sensíveis, permanecem no navegador do usuário que esteve logado ao website por qualquer razão. À luz do novo regulamento do RGPD, tal permanência de cookies é indesejável, além de tecnicamente desnecessária.

Contudo, como livrar-se desses cookies de forma automatizada? A seguir explicamos como utilizar uma solução em código simples para tal.



A solução passa por duas etapas:

  1. Primeiro, utiliza-se a “hook” wp-logout para acionar a função sempre que o usuário efetuar a saída do sistema. A função usa setcookie para deletar todos os cookies gerados a partir do domínio do website.
  2. No segundo passo, o redirecionamento é feito para a página inicial do website e não mais para o login do WordPress, que seria o redirecionamento padrão. Isto porque a página de login geraria um novo cookie.

 

add_action('wp_logout', function () {
 array_map(function ($k) {
  setcookie($k, FALSE, time()-YEAR_IN_SECONDS, '', COOKIE_DOMAIN);
 }, array_keys($_COOKIE));
  // Redireciona para o 'siteurl' ao invés do ecrã de login
  // o URL de login geraria um novo cookie
 header('Location: '.get_option('siteurl'));
 exit();
}, 99999);

 

O código pode ser utilizado em qualquer tema ou plugin para gerar o efeito. De forma mais recomendável, deve-se utilizar o código no ficheiro functions.php de um tema filho ou em um plugin customizado, para evitar que seja apagado em atualizações.

Atualizado em Junho 23, 2018