0

我正在为 PrestaShop 开发一个模块,我需要从后台注销用户(员工)。我在后端代码中看到他们通过使用

// Find employee
$this->context->employee = new Employee();
$this->context->employee->getByEmail($email, $passwd);
$this->context->employee->logout();

但是我不能在我的模块范围内使用它,因为我需要从后台登录表单中截取凭据以创建到员工的正确链接,但我找不到方法。有什么方法可以获取这些凭据或以其他方式注销用户?

PS 在他登录之前拦截用户凭据并阻止他登录直到某个点也可以满足我的需求,但这听起来要复杂得多,我也找不到这样做的方法。

4

1 回答 1

1

此代码足以断开员工的连接:
$this->context->employee->logout();

但是,正如您在上下文中看到的那样,这意味着代码应该从您要断开连接的员工处执行,因为会话保存在员工的本地 cookie 中,换句话说,您不能远程断开连接到员工,但是您可以使用在每个浏览页面中调用的钩子 displayBackOfficeHeader 然后断开员工,例如:

public function hookDisplayBackOfficeHeader()
{
    // My validation to disconnect the employee I want
    if ($id_employee == 1) {
        $this->context->employee->logout();
        Tools::redirectAdmin('index.php');
    }
}
于 2018-11-15T14:53:47.690 回答