Jump to content

Recommended Posts

Hola, tengo un multitienda que he actualizado recientemente a 1.6.1.20, realmente no se si el problema es de ahora o me viene de atrás, pero me acabo de dar cuenta ahora.

La cuestión es que prestashop me inyecta dos cookies en cualquier tienda que no sea la nº 1; he comprobado que se trata de la cookie de sesión correspondiente y una segunda cookie del admin de prestashop (adjunto capturas).

Alguien más ha detectado este problema?

Alguna solución?

 

Gracias de antemano.

Capturacookies1.JPG

Capturacookies2.JPG

Link to comment
Share on other sites

He estado mirando las tiendas en el foro de comentarios y por lo que veo esa cookie con 20 días de caducidad es bastante normal, pero algunas no la tienen. Como dije antes, en mi caso la tienda con id 1 solo tiene la cookie de sesión que finaliza al cerrar sesión, en el resto sea cual sea el id siempre aparece esa cookie de 20 días.

Entiendo que lo normal sería que solo se inyectara la cookie de sesión, por eso me gustaría saber como evitar esa segunda cookie.

Alguna idea?

 

Link to comment
Share on other sites

Lo que he hecho hasta ahora es un override en la función construct para hacer que la cookie del admin caduque al cerrar sesión; ya de paso he modificado para que en las cookies aparezca el nombre de mi tienda en lugar de "Prestashop".

No se si esto estará bien, pero parece que funciona.

class  Cookie extends CookieCore
{	  
	public function __construct($name, $path = '', $expire = null, $shared_urls = null, $standalone = false, $secure = false)
    {
	    if ($name === 'ps-s1'){
		    $name_shop = 'Tienda1';
		   }elseif ($name === 'ps-s6'){		 		   
			$name_shop = 'Tienda2';
		   }elseif ($name === 'psAdmin'){
			$name_shop = 'Grupo-tienda';
		   }else{
			$name_shop = 'Prestashop';
		   }
        $this->_content = array();
        $this->_standalone = $standalone;
		$this->_expire = isset($expire) ? (int)$expire : 0;
        $this->_path = trim(($this->_standalone ? '' : Context::getContext()->shop->physical_uri).$path, '/\\').'/';
        if ($this->_path{0} != '/') {
            $this->_path = '/'.$this->_path;
        }
        $this->_path = rawurlencode($this->_path);
        $this->_path = str_replace('%2F', '/', $this->_path);
        $this->_path = str_replace('%7E', '~', $this->_path);
        $this->_domain = $this->getDomain($shared_urls);
		$this->_name = $name_shop.'-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain);
        $this->_allow_writing = true;
        $this->_salt = $this->_standalone ? str_pad('', 8, md5('ps'.__FILE__)) : _COOKIE_IV_;
        $this->_cipherTool = new Rijndael(_RIJNDAEL_KEY_, _RIJNDAEL_IV_);
        $this->_secure = (bool)$secure;

        $this->update();
    }
}

 

Edited by Eusebio100 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...