在模块前端控制器 ajax 操作中验证员工
Authenticate employee in module front controller ajax actions
在 Prestashop 1.5 中,我需要仅向员工授予在模块前端控制器中执行某些 ajax 操作的权限。
Context::getContext()->employee
仅在管理上下文中可用,因此在模块前端控制器中始终为空。
我应该如何在模块前端控制器上下文中对员工进行身份验证?
尝试:
$context = Context::getContext();
$context->employee->id = 1;
在以前的 PrestaShop 版本中,您可以使用 Cookie->isLoggedBack(),但现在已弃用此方法(移至仅在管理面板中可用的 Employee->isLoggedBack())。
检查员工是否登录管理面板的正确方法是:
$cookie = new Cookie('psAdmin', '', (int)Configuration::get('PS_COOKIE_LIFETIME_BO'));
$employee = new Employee((int)$cookie->id_employee);
if (Validate::isLoadedObject($employee) && $employee->checkPassword((int)$cookie->id_employee, $cookie->passwd)
&& (!isset($cookie->remote_addr) || $cookie->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP')))
die('Logged In, Your code here');
else
die('User is not logged in');
在 Prestashop 1.5 中,我需要仅向员工授予在模块前端控制器中执行某些 ajax 操作的权限。
Context::getContext()->employee
仅在管理上下文中可用,因此在模块前端控制器中始终为空。
我应该如何在模块前端控制器上下文中对员工进行身份验证?
尝试:
$context = Context::getContext();
$context->employee->id = 1;
在以前的 PrestaShop 版本中,您可以使用 Cookie->isLoggedBack(),但现在已弃用此方法(移至仅在管理面板中可用的 Employee->isLoggedBack())。
检查员工是否登录管理面板的正确方法是:
$cookie = new Cookie('psAdmin', '', (int)Configuration::get('PS_COOKIE_LIFETIME_BO'));
$employee = new Employee((int)$cookie->id_employee);
if (Validate::isLoadedObject($employee) && $employee->checkPassword((int)$cookie->id_employee, $cookie->passwd)
&& (!isset($cookie->remote_addr) || $cookie->remote_addr == ip2long(Tools::getRemoteAddr()) || !Configuration::get('PS_COOKIE_CHECKIP')))
die('Logged In, Your code here');
else
die('User is not logged in');