Cakephp 3: Cómo trabajar con Cookies

Es muy común trabajar con cookies en una aplicación web ya que nos permite guardar información que puede ser utilizada en cualquier momento dentro de nuestra aplicación.

Cakephp 3 tiene una forma muy sencilla de trabajar con cookies y vamos a ver un poco de información sobre como utilizarlas.

Lo usual de una cookie en tu aplicación es que vas a utilizarla en distintas partes de tu web por lo que en cakephp vamos a cargar el componente para toda la aplicación, esto lo hacemos modificando el archivo /src/Controller/AppController.php agregando este código.

ESCRIBIR UNA COOKIE

Escribir una cookie es bastante sencillo, además tenemos la facilidad de guardar casi cualquier tipo de información (generamente texto) como el id del usuario, el nombre del usuario, permisos, etc., por lo que una cookie sencilla se puede escribir así:

Aunque una forma muy funcional si vas a guardar varios datos sobre "usuario" es crear un arreglo en la cookie asi:

Así en lugar de guardar una cookie por cada información solo creamos una con toda la información necesaria.

VERIFICAR SI LA COOKIE EXISTE

Muy útil si deseamos verificar la existencia de la cookie antes de trabajar con ella, asi evitamos mensajes de error.

LEER UNA COOKIE

Para leer la información de la cookie lo hacemos con el método read(). En este ejemplo vamos a hacer uso también de la función debug() que no es propia del uso de cookies sino que nos ayuda a visualizar la información de una variable en pantalla al momento de hacer pruebas.

Si quisieramos solo un dato del arreglo lo obtenemos así:

ELIMINAR UNA COOKIE

CONFIGURACION DE COOKIES

En cakephp las cookies tienen propiedades por defecto como por ejemplo el tiempo de duración que es de 1 mes. En algunos casos vamos a querer cambiar dichas propiedades. Podemos cambiar las propiedades de manera global, es decir para todas las cookies, ó solo para una en específico:

Ejemplo de global:

Ejemplo para cambiar las propiedades de una cookie en específico:

Es de tener en cuenta que si vas a cambiar las propiedades de las cookies lo debes hacer antes de escribirlas.

Esta es la lista de propiedades que podes cambiar:

  • expires: Tiempo de la cookie.
  • path: Ruta en el servidor donde la cookie estará disponible. Por ejemplo establecerla en /dir1/ solo estará disponible para el directorio y subdirectorios debajo de dir1 como /dir1/subdir/.
  • domain: Dominio en el que la cookie estará disponible.
  • secure: Indica si la cookie debería ser transmisita solo sobre una conexión segura (https), si se indica true no funcionará en el sitio si no posee un certificado de seguridad.
  • key: Llave de encriptación utilizada para encriptar la cookie. Por defecto es la Security.salt.
  • httpOnly: Si se indica en true las cookies solo serán accecibles via protocolo http, estas no son accesibles desde Javascript.
  • encryption: Tipo de encriptación a utilizar en la cookie, por defecto es aes aunque tambien se puede utilizar rijndael.

Referencias: cakephp, php.

Deja un comentario