Php magento的自定义管理员登录脚本

Php magento的自定义管理员登录脚本,php,magento,session,cookies,Php,Magento,Session,Cookies,我有一个自定义脚本,我想用Magento为此创建一种单点登录 我已经找到了创建会话和以客户身份登录的代码 $session = Mage::getSingleton( 'customer/session' ); try { $session->login( $username, $password ); .... 但使用这种方法是行不通的 Mage::getSingleton( 'admin/session' );//adminhtml does also not work

我有一个自定义脚本,我想用Magento为此创建一种单点登录

我已经找到了创建会话和以客户身份登录的代码

$session = Mage::getSingleton( 'customer/session' );
try {
    $session->login( $username, $password ); 
....
但使用这种方法是行不通的

 Mage::getSingleton( 'admin/session' );//adminhtml does also not work
基本上,我想要的是:

  • 让用户从自定义登录页面登录到Magento管理员

  • 跟踪他们新创建的会话

我的另一个选择是让用户登录到Magento,然后如果他们转到我的脚本,我将看到该用户以管理员身份登录。我找到了这方面的代码,但是如果用户首先访问我的脚本,这就不起作用了。代码如下:

$session = Mage::getSingleton('core/session', array('name'=>'adminhtml'));
if(Mage::getSingleton('admin/session')->isLoggedIn()){
....
如果用户首先登录到magento,则上述代码有效。但如果他们先转到我的脚本,我会看到一个名为adminhtml的cookie通过以下代码行创建:

Mage::getSingleton('core/session', array('name'=>'adminhtml'
因此,如果用户在此之后登录到Magento,然后转到我的脚本,则此cookie仍然存在,并且检查是否已登录返回false,而另一个同名的sessioncookie实际已登录

请帮帮我!谢谢

试试这个

 $session = Mage::getSingleton('admin/session');
$session->setIsFirstVisit(true);
$session->setUser($user);
$session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user));