2014-01-07 3 views

Antwort

4

Ich hatte vor kurzem mit der Oauth Implementierung auf Magento zu kämpfen und ich es geschafft, meinen Tests zu erledigen, indem Sie den Oauth Mechanismus zu deaktivieren, wie ...

folgt Wenn Sie die folgende einfach eingeben URL Magento geht davon aus, dass Sie sich als Gast verbinden. http://www.yourmagentopath.com/api/rest/products?limit=2 (zum Beispiel)

Momentan hat die Guest-Rolle standardmäßig keine Berechtigungen, um Informationen anzuzeigen. Dies gibt 403 zurück (Zugriff verweigert).

So loggen Sie sich in Magento Admin ein, Gehe zu System-> Web Services-> REST - Rollen Wählen Sie Gast aus der Liste und klicken Sie auf die Kästchen, damit das Gastkonto Details anzeigen kann.

Speichern Sie die Details und aktualisieren Sie die Seite über den oben angegebenen Link. Sie sollten nun 2 Produkte im XML-Format angezeigt bekommen.

Um zu sehen, alle Produkte einfach die Grenze entfernen ...

9

vorübergehend deaktivieren die oAuth:

  1. Stellen Sie sicher, eine Admin User Type Rolle unter: System -> Web-Services -> REST - Rollen. Falls nicht, fügen Sie eine neue Rolle hinzu und geben Sie die gewünschten Rollen-API-Ressourcen an.
  2. Stellen Sie sicher, dass Sie vollständige Rechte für REST-Attribute haben unter: System -> Web Services -> REST - Attribute für den Admin-Benutzertyp.
  3. Trick Magento Auth Modell zu denken, es hat den Benutzer admin geladen:

Werfen Sie einen Blick auf die Mage_Api2_Model_Auth Modell unter app/code/core/Mage/API2/Model/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

Ich denke niemand hat Ihre hervorragende Antwort bemerkt :) Dies sollte die akzeptierte Antwort gewesen sein. – Dharam

0

In Bezug auf erholsame Webservices denke ich, Magento würde es nie erlauben, seine API ohne OAUTH offen zu legen, indem man die erlaubten Wege nutzt.

Ich bin auch einen erholsamen Anruf ohne Oauth zu implementieren Planung, die Json oder meine gewünschten HTML-Inhalte ohne zusätzliche HTML zB zurückgeben sollte, Kopf- und Fußzeilen usw.

Eine einfache Möglichkeit, die Arbeit zu erledigen ist eine Umsetzung neues benutzerdefiniertes Modul Da Sie möchten, dass sich Ihr Modul wie ein ruhender Webservice verhält, entfernen Sie einfach alle Elemente (Kopfzeile, Fußzeile, linker rechter Mauszeiger usw., die zusätzlichen unerwünschten Inhalt in die Ausgabe bringen) aus dem neuen Modullayout.

oder einfach nur Ihr Ergebnis innerhalb Controller drucken und den Code nicht unter dem Layout zu machen verwenden

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

Es ist möglich, ein custom REST authentication adapter in Magento hinzuzufügen.Sie können zum Beispiel die Methode HMAC zum Sichern der Kommunikation zwischen Client und Server verwenden.

Verwandte Themen