2014-01-07 102 views

回答

4

我有最近與Magento的基於OAuth的認證實施奮鬥,我設法讓我的測試通過禁用的Oauth機制做如下...

如果你只需輸入以下URL Magento假定您以訪客身份連接。 http://www.yourmagentopath.com/api/rest/products?limit=2(例如)

默認情況下,Guest角色沒有權限查看任何信息。 這將返回403(拒絕訪問)。

因此登錄到Magento Admin,轉到系統 - > Web服務 - > REST - 角色 從列表中選擇Guest,然後單擊框以允許訪客帳戶查看詳細信息。

保存細節並刷新上面提供的鏈接頁面。您現在應該可以看到2種產品以XML格式顯示。

要查看所有產品只需刪除限制...

9

臨時禁用的OAuth:

  1. 請確保您有下管理員用戶類型的角色:系統 - > Web服務 - > REST - 角色。如果不是,請添加一個新角色並指定您所需的角色API Rsources。
  2. 確保您對REST屬性具有完全的權限:系統 - > Web服務 - > REST - 管理用戶類型的屬性。
  3. 招數Magento的驗證模式,以爲它已經加載的管理員用戶:

看一看下的應用程序/代碼Mage_Api2_Model_Auth模型/核心/法師/ API2 /型號/ Auth.php

public function authenticate(Mage_Api2_Model_Request $request) 
{ 
    ... 
    $authAdapter = Mage::getModel('api2/auth_adapter'); 
    $userParamsObj = $authAdapter->getUserParams($request); 
    // Added code: 
    $userParamsObj->type = 'admin'; 
    $userParamsObj->id = 1; 
} 
+1

我想沒有人注意到你的超棒答案:)這應該是被接受的答案。 – Dharam

0

關於寧靜的web服務,我認爲magento絕不允許在沒有OAUTH的情況下使用允許的方式公開其API。

我還計劃實施沒有的Oauth一個寧靜的調用,它應該返回JSON或我想要的HTML內容沒有任何多餘的HTML例如,頁眉,頁腳等

來完成這項工作正在實施的一個簡單方法新的自定義模塊。既然你希望模塊的行爲像一個平靜的Web服務,因此只需從新的模塊佈局中刪除所有的元素(header,footer,left right nav等,這會在輸出中放入額外的不需要的內容)。

或只是打印控制器裏面你的結果,不要使用下面的代碼來呈現佈局

$this->loadLayout(); 
$this->renderLayout();