2011-05-27 101 views
5

我正在写一个移动设备和magento之间的通信的Web服务,我使用Magento提供的SOAP webservices,但是,我迷失在用户身份验证,我需要进行身份验证我的系统用户(不是api用户)。有什么线索吗?Magento SOAP WebService - >用户登录

+0

如果我理解正确,您想使用“admin”的占了Web服务进行身份验证?可能会提供一些帮助:http://www.yireo.com/tutorials/magento/magento-programming/629-connecting-to-magento-with-soap-part-1 – B00MER 2011-05-27 15:41:24

+3

不,这就是我已经做的,我想要从该“管理”帐户验证“用户”帐户,希望您明白这一点。 – 2011-05-27 23:22:15

+0

在相应的手册中没有指出apis的基本差异似乎是一种传统。 – John 2015-02-20 13:59:52

回答

1

您不能使用SOAP Api来记录magento中的用户帐户,因为它不支持该功能,您必须以其他方式处理它,也许会覆盖Mage Customer中名为AccountController.php的控制器文件。

尝试添加一个可以使用JSON变量与服务器进行通信的新方法。

-1

不,你不能那样做。如果您可以通过FTP访问文件,那么您可以使用数据库配置文件的get_file_content,然后从外部源连接到数据库并执行用户访问检查。

适用于您自己承担风险。可能它无效。但你可以试试!

1

您可以使用REST API来验证客户身份。 http://www.magentocommerce.com/api/rest/introduction.html

这种做法似乎更加方便,因为您可能会收到一个产品列表与登录的客户应用类别规则(比方说,通过客户群应用)。 SOAP API不提供此类功能(您只能以管理员用户身份接收产品列表)。

1

使用此

$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 
$app = Mage::app('default'); 
Mage::app(); 
$user = "[email protected]"; 
$pass = "admin123"; 
$session = Mage::getSingleton('customer/session'); 
    Mage::app()->getStore()->setWebsiteId(1); 
    try 
    { 
     $session->login($user, $pass); 
     $customer = $session->getCustomer(); 
     //echo "valid"; 
     $userID = $session->getCustomer()->getId(); 
    $return_array['customer_id'] = $userID; 
     $return_array['status'] = 1; 
     $return_array['message'] = "Login is valid"; 
     echo json_encode($return_array); 
     } catch(Exception $e) { 
      $return_array['status']= 0; 
     $return_array['message']="Login is invalid"; 
     echo json_encode($return_array); 
       }