从Prestashop注销所有客户

问题描述 投票:0回答:2

我需要一种从Prestashop网站注销所有已登录客户的方法,因为域名迁移会导致用户会话出现某些问题,并且让客户注销并重新登录才能解决此问题。

我尝试了以下代码,无济于事:

$customers = Customer::getCustomers();
foreach($customers as $customer) {
    $obj = new Customer($customer['id_customer']);
    $obj->logout();
}

是否有一种方法可以从Prestashop(代码或后台)本地使所有用户会话失效/破坏?否则,纯PHP方法绝对不受欢迎。

php prestashop logout prestashop-1.7
2个回答
1
投票

您必须更改Prestashop cookie以避免验证登录。

由于所有密码失败,无法更改“ cookey-key”,但是您可以覆盖Cookie类并更改Cookie模式。


0
投票

我最终追求的是马赫迪·沙德(Mahdi Shad)在他的回答中提到的内容,但请允许我添加更多详细信息:]

通过转到/classes/Cookie.php,并更改了以下行(第78行),将Prestashop Cookie名称的前缀从“ Prestashop-”更改为“ MySiteName-”(您可以更改为所需名称):

$this->_name = 'MySiteName-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain);

嗯,重写类而不是直接修改它当然是更好的做法。

Cookie名称的这一更改会立即使旧的浏览器Cookie失效(即使它们没有过期),因此所有用户都被注销了。正是我想要的!

© www.soinside.com 2019 - 2024. All rights reserved.