CodeIgniter REST API Bibliothek Ajax PUT werfen 403 Verboten

8

Ich habe den Rest der Bibliothek voll arbeiten lassen, nur versucht, api-Schlüssel zu generieren, und er wirft eine 403-Verboten-Anweisung, wenn er über Ajax ausgeführt wird.

({"status":false,"error":"Invalid API Key."})

Ich habe es unter REST_Controller auf die _remap-Funktion zurückverfolgt .. fast so, als würde ich die URL falsch aufrufen?

Workflow: user visits site1.com -> registers for account -> generates api key for their domain -> key recorded in db -> key displayed

Das folgende Formular würde auf site1.com sein, nachdem sie sich für ein Konto registriert haben, das sie auf "generate key" klicken würden.

Ajax-Aufruf:

%Vor%

REST-SERVER auf GitHub: Ссылка

Sehen Sie sich speziell key.php unter application/controllers/api/key.php

an

Snippet der key.php-Datei, die sich auf diesen Prozess beziehen sollte:

%Vor%

Antwort- / Anforderungsheader

%Vor%     
gorelative 03.02.2012, 18:01
quelle

4 Antworten

3

Ich habe herausgefunden, dass die 403 verboten war, weil ich keinen API-Schlüssel zur Verfügung gestellt habe, um Schlüssel zu generieren.

Etwas abwegig, da Phils Dokumentation nicht besagt, dass ein vorhandener API-Schlüssel erforderlich ist, bevor Sie Schlüssel generieren können.

Ich habe einfach einen falschen Schlüssel in der Tabelle in der Datenbank erstellt und beim Aufruf von / key / index? X-API-KEY = boguskey

darauf verwiesen     
gorelative 09.02.2012, 22:20
quelle
2

Ich habe das Problem der Erzeugung des api-Schlüssels gelöst. Ich benutze den REST-API-Server von Phil Sturgeon. Rufen Sie den Schlüssel-Controller mit einem Ajax-Aufruf als solchen an:

%Vor%

Innerhalb der Schlüsselsteuerung: Suche nach der Funktion _generate_key () und prüfe nach $ this- & gt; load- & gt; helper ('security') ;. der Sicherheitshelfer muss für die Arbeit von do_hash geladen werden, andernfalls wird ein interner Fehler von 500 Servern angezeigt.

%Vor%

Sie können auch Ссылка in der Adressleiste Ihres Browsers aufrufen, indem Sie eine kleine Änderung vornehmen Ihr Schlüsselcontroller Sie können den Funktionsnamen index_put durch index_get ersetzen.

Danke

    
Pawan Sarwal 18.09.2014 06:41
quelle
0

Wenn Sie dies von einer anderen Domäne aus aufrufen, treten möglicherweise einige XSS-Probleme auf. Sie müssen es möglicherweise von Ihrem eigenen Server ausführen und die Funktion von seiner eigenen Domäne aufrufen oder möglicherweise die JSONP-Funktion verwenden.

UPDATE: Können Sie die Transaktion in Firebug mit der Registerkarte NET sehen? Bekommst du JSON zurück? Manchmal müssen Sie Callback =? zur URL-Anfrage: Ссылка ?

Update2: Können Sie die Seite im Browser anzeigen: (http://dev.mapitusa.com/api/key) Wenn Sie denselben Fehler erhalten, sollten Sie versuchen, der Site 777 (vollständige Lese- / Schreibrechte) zu erteilen.

    
danfolkes 03.02.2012 18:12
quelle
0

Das klingt nach einem Browser-Problem. Vielleicht eine falsche Implementierung von PUT im XMLHttpRequest-Stack.

Ich würde versuchen, es schnell zu POST zu konvertieren, nur um zu sehen, ob es funktioniert. Es könnte besser sein, es als POST nur aus Kompatibilitätsgründen zu lassen.

    
Garry Welding 08.02.2012 20:23
quelle

Tags und Links