【发布时间】:2018-01-06 19:15:28
【问题描述】:
我想以编程方式将用户登录到 magento 管理员。管理页面位于 iframe 中,它必须自动重定向到管理仪表板而无需身份验证。我使用了一个在古代帖子中找到的代码,它与 magento 核心源相匹配。代码是:
umask(0);
$app = Mage::app('default');
Mage::getSingleton('core/session', array('name' => 'adminhtml'));
// supply username
$user = Mage::getModel('core/factory')->getModel('admin/user')->loadByUsername($loginadmin);
if (Mage::getSingleton('adminhtml/url')->useSecretKey()) {
Mage::getSingleton('adminhtml/url')->renewSecretUrls();
}
$session = Mage::getSingleton('admin/session');
$session->setIsFirstVisit(false);
$session->setUser($user);
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user));
if ($session->isLoggedIn()) {
//Redirection vers le dashboard
$url = "index.php/admico/dashboard";
header('Location: '.$url);
}
当我var_dump()数据时,用户存在并且它拥有所有信息,如名字、id 等,而且都是正确的。代码进入最后一个if 并重定向到'index.php/admico/dashboard',因此$session 已正确登录。但是,无论如何,首页显示连接表单,就好像会话未登录并且不是管理员的仪表板。
有人可以帮我找出问题所在吗?
【问题讨论】: