【问题标题】:Log out all customers from Prestashop从 Prestashop 注销所有客户
【发布时间】:2020-06-06 05:50:18
【问题描述】:

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

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

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

有没有办法从 Prestashop(代码或后台)本地使所有用户会话无效/销毁?否则,简单的 PHP 方法就更受欢迎了。

【问题讨论】:

    标签: php prestashop logout prestashop-1.7


    【解决方案1】:

    我最终想要的几乎就是 Mahdi Shad 在他的回答中提到的,但请允许我添加更多细节:

    我将 Prestashop cookie 名称的前缀从“Prestashop-”更改为“MySiteName-”(您可以更改为您想要的任何内容),方法是转到 /classes/Cookie.php,并更改以下行(第 78 行):

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

    嗯,覆盖类而不是直接修改它肯定是更好的做法。

    cookie 名称的这种更改会立即使旧的浏览器 cookie 过时(即使它们没有过期),因此所有用户都会退出。正是我想要的!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,重写 Cookie.php 类是要走的路,谢谢!我在回答中为感兴趣的人添加了更多详细信息。
      猜你喜欢
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2017-06-05
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多