csrf-Tokens für JSON-Postanforderungen an eine Rails-App erhalten

8

Ich habe mit Rest-Client gespielt, um auf eine Rails-App zuzugreifen, die ich geschrieben habe. Ich habe ein schnelles Skript geschrieben, um mich einzuloggen und eine Postanfrage zu stellen. Alles funktioniert, aber ich musste um die Tatsache arbeiten, dass kein authenticity_token serviert wird, wenn Sie ein Formular in json anfordern. Ich musste eine normale HTML-Anfrage in anderen machen, um das authenticity_token zu bekommen, und dann dieses in den JSON einbinden, den ich als Teil meiner Postanfrage eingereicht habe. Im Grunde habe ich ein schnelles, schmutziges Skript wie das unten stehende

%Vor%

Es gibt die Option, den CSRF-Schutz für JSON-Anfragen abzuschalten, aber das möchte ich lieber nicht tun. Ich könnte die Mechanisierungsroute oder etwas ähnliches machen und dann würde ich mir keine Sorgen um JSON-Anfragen mit CSRF machen, aber ich wollte einfach nur mit dem Rest-Client rumspielen

Ich glaube, ich bin nur neugierig zu wissen, ob es einen Grund gibt, warum kein authenticity_token für json-Anfragen serviert wird, und ich frage mich auch, ob es eine bessere Möglichkeit gibt, das Token-Problem zu lösen als die ziemlich hacky Vorgehensweise hier aufgenommen

    
Conor 02.05.2012, 12:31
quelle

2 Antworten

8

Fügen Sie den folgenden Code in Ihren Anwendungscontroller ein:

%Vor%

Und rufe diese Methode mit before_filter auf.

Für weitere Details überprüfen Sie: Ссылка

Und überprüfen Sie dieses Problem in Schienen: Ссылка

    
swati 02.05.2012, 13:01
quelle
0

Fügen Sie in Ihrem app/views/products/new.json.jbuilder Folgendes hinzu:

%Vor%

Dies fügt einen Schlüssel "authenticity_token" ein, wobei der Wert das Token ist, also erhalten Sie in Ihrem json_response auch das Token. Idee von diese Antwort .

    
Franklin Yu 28.08.2016 01:25
quelle