Dies ist mein erstes Mal mit Curl in meiner Rails 4 App. Ich versuche Plaid mit Stripe zu verwenden. Ich bin in der Lage, den öffentlichen Token für den Stripe-Konto-Token erfolgreich auszutauschen.Parse Curl Informationen in Rails-Anwendung
Hier ist meine Controller-Aktion.
def create
results = `curl https://tartan.plaid.com/exchange_token \
-d client_id="CLIENT_ID" \
-d secret="SECRET_KEY" \
-d public_token="#{params[:public_token]}" \
-d account_id="#{params[:meta][:account_id]}"`
end
Im Terminal mit JSON.parse (Ergebnisse)
{"account_id"=>"ACCOUNT_ID", "stripe_bank_account_token"=>"12345678abcd", "sandbox"=>true, "access_token"=>"test_citi"}
Wie man die in den Controller stripe_bank_account_token nicht erhalten?
UPDATE
ich den Figaro Gem bin mit den params/Anmeldeinformationen zu verbergen ..
results =
`curl https://tartan.plaid.com/exchange_token \
-d client_id="#{ ENV['PLAID_CLIENT_ID'] }" \
-d secret="#{ ENV['PLAID_SECRET_KEY'] }" \
-d public_token="#{params[:public_token]}" \
-d account_id="#{params[:meta][:account_id]}"`
# here's how I get the stripe_bank_account_token
break_down = JSON.parse(results)
x = break_down.select { |key, val| key == "stripe_bank_account_token" }
nur die Bibliothek Rubin karierten verwenden. https://github.com/plaid/plaid-ruby solltest du niemals die Shell aus Ruby-Code aufrufen. –
Der Shell-Aufruf befindet sich auf der Website von Plaid. Ich nahm ihre Anweisungen, als ob Sie den einen oder anderen benutzen könnten? Ist diese Locke von Plaid das Sicherheitsproblem? @MatthewArkin – jgrant
Das Problem ist, dass Sie einen Shell-Befehl von Schienen ausführen, die Benutzereingaben nimmt. Wenn ich Ihr Frontend geändert habe (was jeder Benutzer tun kann, indem er in Chrome mit der rechten Maustaste klickt), kann ich in den Parametern, die möglicherweise einen anderen Befehl ausführen, anstelle von curl einige bösartige Eingaben senden. So könnte ich Public_Token setzen, um Ihren Server zu löschen, alle Ihre Datenbank-Passwörter zu löschen usw. –