4

Magento 中是否有任何用于管理员登录身份验证的 Api?

4

3 回答 3

4

我认为 magento 具有管理员身份验证的扩展名这可能会对您有所帮助

于 2013-01-16T06:18:02.977 回答
3
if(isset($_REQUEST['admin_name']) && isset($_REQUEST['admin_password']))
             $user = Mage::getModel('admin/user');
             $user->login($_REQUEST['admin_name'],$_REQUEST['admin_password']);
             $result=$user->getId();
             if($result)
             {
                 $result1=$user->getUsername();
                 $result2=$user->getFirstname();
                 $result3=$user->getLastname();
                 $result4= $user->getEmail();
                 echo $result4;
             }
于 2013-01-16T07:46:00.847 回答
1

目前尚不清楚,您要实现什么。因此,我为三个可能的目标提供了指导。


1)如果您想通过某个 3rd 方系统对管理员进行身份验证,因此他不需要在标准的“登录/密码”表单中输入他的凭据,那么您需要使用 Magento 代码库灵活性并安装一些自定义解决方案或编写它靠自己。没有开箱即用的 3rd 方身份验证功能,因为它过于专业并且有许多身份验证提供程序/API。

像任何系统一样,Magento 不可能是万能的瑞士刀,它通过初始系统包提供所有解决方案。相反,该平台具有许多有用的电子商务功能以及完全定制的能力。因此,如果任何店主想要为其商店添加新功能,那么他可以轻松开发自己的定制解决方案。或者尝试在 Magento Connect(即 Magento 的 App Store)上找到一个,@naveen 已经提供了一个链接。


2) 如果您想使用 API 代表管理员用户执行一些后端操作(产品创建、客户管理等),那么您可以使用 Magento 的 REST 或 SOAP API。请注意,这些系统不使用管理员帐户,而是拥有自己的用户,这些用户在后端进行配置。您可以在官方文档中找到有关 Magento API 的更多信息。


3) 如果你想在 PHP 中使用内部 API 来验证管理员登录名和密码,那么你应该使用Mage_Admin_Model_Useror Mage_Admin_Model_Session

身份验证有两种方法Mage_Admin_Model_User

  • authenticate($username, $password)- 加载用户模型,返回认证是否成功
$adminUser = Mage::getModel('admin/user');
if ($adminUser->authenticate($username, $password)) {
    echo 'Success';
} else {
     echo 'Failure';
}
  • login($username, $password)- 加载用户模型,记录不成功的身份验证尝试
$adminUser = Mage::getModel('admin/user');
$adminUser->login($username, $password)
if ($adminUser->getId()) {
    echo 'Success';
} else {
    echo 'Failure';
}

并且有一种方法Mage_Admin_Model_Session- login($username, $password)。该模型本身旨在管理管理会话 - 在成功登录时启动它,将 cookie 设置到浏览器,让管理员在登录后浏览后端。login()如果登录成功,该方法将启动新会话并返回用户模型。

$adminSession = Mage::getSingleton('admin/session');
$adminUser = $adminSession->login($username, $password)
if ($adminUser) {
    echo 'Success';
} else {
    echo 'Failure';
}
于 2013-01-16T07:19:02.247 回答