试图了解 Opencart 客户登录系统。 catalog>controller>account>login.php
文件中的 ControllerAccountLogin
类有一个条件 if (!empty($this->request->get['token ']))
(在 //管理员用户的登录覆盖
之后,注释)这让我卡住了。
ControllerAccountLogin(这不是完整的 Controller ,只是我需要了解的部分)
class ControllerAccountLogin extends Controller {
private $error = array();
public function index() {
$this->load->model('account/customer');
// Login override for admin users
if (!empty($this->request->get['token'])) {
$this->event->trigger('pre.customer.login');
$this->customer->logout();
$this->cart->clear();
unset($this->session->data['wishlist']);
unset($this->session->data['payment_address']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['shipping_address']);
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['comment']);
unset($this->session->data['order_id']);
unset($this->session->data['coupon']);
unset($this->session->data['reward']);
unset($this->session->data['voucher']);
unset($this->session->data['vouchers']);
$customer_info = $this->model_account_customer->getCustomerByToken($this->request->get['token']);
这是什么 $this->request->get['token']
,它有什么作用,这个 token 在哪里设置以及我如何 var_dump
到看到它的值(value)了吗?
最佳答案
在OpenCart中,管理员无需输入客户密码即可登录客户账户。
在管理面板/sale/customer 中,每个客户都有一个带锁图标和“登录商店”标题的链接,它调用此方法:sale/customer/login
:
admin\controller\sale\customer.php
public function login() {
...
$token = md5(mt_rand());
...
$this->response->redirect($store_info['url'] . 'index.php?route=account/login&token=' . $token);
...
}
关于php - opencart 客户登录文件中 $this->request->get ['token' ] 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47780024/