Phalcon - Gerenciamento de Cookies

Cookies também conhecidos como browser cookiessão pequenos arquivos de texto armazenados no navegador. Ele salva todas as informações relacionadas à identidade do usuário. Essas informações são utilizadas para validar os usuários, uma vez que navegam por diferentes páginas.

Existem dois tipos diferentes de cookies -

  • Session Cookies- Esses tipos de cookies permanecem no navegador e retêm informações até que o navegador seja fechado. Assim que o navegador for aberto, ele será tratado como uma nova sessão para o mesmo usuário.

  • Persistent Cookies- Inclui uma vida útil estipulada e permanece no navegador dentro da vida útil fornecida. Os sites que usam cookies persistentes rastreiam cada um dos usuários, mesmo que o navegador seja fechado pelo usuário.

Vamos agora discutir como os cookies funcionam no Phalcon.

Cookies em Phalcon

Phalcon usa Phalcon\Http\Response\Cookiescomo um armazenamento global para cookies. Os cookies são armazenados no Phalcon durante o envio de uma solicitação ao servidor.

A seguir está a sintaxe para configurar um Cookie -

$this->cookies->set( 
   "<cookie-name>", 
   "<cookie-value>", 
   time 
);

Considere o seguinte exemplo. Usando o código a seguir, criaremos cookies do usuário quando ele efetuar login no aplicativo da web.

<?php  

class UsersController extends \Phalcon\Mvc\Controller { 
   public function indexAction() { 
      if ($this->cookies->has("login-action")) { 
         // Get the cookie 
         $loginCookie = $this->cookies->get("login-action"); 
         
         // Get the cookie's value 
         $value = $loginCookie->getValue(); 
         echo($value); 
      } 
      $this->cookies->set( 
         "login-action", 
         "abc", 
         time() + 15 * 86400 
      ); 
   } 
}

Os cookies criptografados serão exibidos como saída.

Descrição

Cookie chamado “loginAction” foi criado com valor “abc”.

O método “indexAction” verifica se o cookie existe e imprime o valor de acordo.

Criptografia de Cookies

Os cookies no Phalcon são criptografados antes de serem enviados ao servidor como uma solicitação e descriptografados assim que obtemos uma resposta apropriada do servidor. Isso garante a segurança dos usuários autorizados.

É sempre recomendável evitar o armazenamento de dados confidenciais em cookies, apesar da funcionalidade de criptografia e descriptografia. A configuração para criptografia de cookies está incluída emservices.php Arquivo.

/** 
   * Enable encryption key for setting values of cookies 
*/  

$di->set( 
   "cookies", function () { 
      $cookies = new Cookies();  
      $cookies->useEncryption(false);  
      return $cookies; 
   } 
); 

/** 
   * Set encryption key 
*/ 

$di->set( 
   "crypt", function () { 
      $crypt = new Crypt(); 
      $crypt->setKey('[email protected]!sft56$'); // Use a unique Key!  
      return $crypt; 
   } 
);

Note -

  • É sempre recomendável usar criptografia ao enviar cookies para o servidor.

  • Se a criptografia não for usada, todos os aplicativos internos serão expostos ao invasor.

  • Também é recomendado armazenar pequenos dados e literais em cookies.