0

我创建了一个模块来从 REST 中的外部站点登录员工,如下所示:

A JSON Post with Authentication token and login/pass => module validate and answer an url with a JWT token like: https://example.com/module/ps_extern_auth/login_jwt?token=FyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ3d3cuY2FtYS16b25lLmZyIiwiZXhwIjoxNjQzOTA4NjIyLCJlbWFpbCI6ImcubGF0b3JyZUBldmVybGF0cy5jb20iLCJzdWIiOiI0NiJ9.lojt_J1LzeOWYYFCHn5xIuEka-FaEw5OOGk25VXAfNk

验证此 JWT 令牌后,我编写此代码以登录员工:

            $this->context->employee->remote_addr = ip2long(Tools::getRemoteAddr());
            // Update cookie
            $cookie = Context::getContext()->cookie;
            $cookie->id_employee = $this->context->employee->id;
            $cookie->email = $this->context->employee->email;
            $cookie->profile = $this->context->employee->id_profile;
            $cookie->passwd = $this->context->employee->passwd;
            $cookie->remote_addr = $this->context->employee->remote_addr;
            $cookie->write();

这是从 AdminLoginController.php 获取的代码 如果我 var_dump $cookie,我有正确的信息。但是,当员工转到 /admin123456/index.php?controller=AdminProducts 他被重定向到登录页面(他没有登录)。

我忘记了什么吗?谢谢你的帮助。

PrestaShop 1.6 / PHP 7

4

1 回答 1

0

解决方案:

    /*            $cookie = Context::getContext()->cookie; */
            $cookie = new Cookie('psAdmin');
于 2022-02-04T08:36:33.147 回答