Senden von POST-requests von der Rails-controller für die Authentifizierung

Ich bin ganz neu mit Ruby und RoR, und habe mit folgendem problem zu kämpfen und komme nicht voran.

Grundsätzlich bin ich ein "proxy" - webservice, der mit bestimmten Anforderungen, übergeben Sie an einen Dritten website. Die Antwort erhielt Sie von der dritt-website ist in HTML, die dann analysiert werden und eine entsprechende XML-Antwort gegeben werden.

Ich bin an einem Punkt, wo ich brauche zu senden POST-Anfragen über mein controller in Rails um einen Benutzer zu authentifizieren, die ich mache, mit diesem code:

require "net/http"
require "uri"

uri = URI.parse("http://myurl.com/members.cgi")

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data({"email_login" => "[email protected]", "password_login" => "password"})
response = http.request(request)

Mein problem liegt an der Antwort, die ich erhalte. Dieses spezifische POST-Anfrage, wenn erfolgreich (d.h. Benutzer erfolgreich authentifiziert), ist wieder eine 302-Umleitung. Das ist an sich nicht ein Problem, als ich Folgen kann der redirect durch, um die "location" - header-Wert:

redirectLocation = response['location']

Wo ich bin, stecken die mich authentifiziert, wenn der Umleitung zu Folgen, mit der folgenden Zeile:

redirectResponse = Net::HTTP.get_response(URI.parse(redirectLocation))

Dies folgt der Umleitung aber wieder eine Reaktion zeigt, ich bin nicht authentifiziert??

Ich nicht wirklich verstehen, warum dies geschieht. Ich kann sehen, es ist ein Authentifizierungs-cookie zurückgegeben wird, mit meiner ursprünglichen Antwort durch Lesen:

response['cookie']

Endlich also meine Frage ist was muss ich tun, um die server zu erkennen meine-Authentifizierung-status? Übergeben Sie die Cookies mit meinem zweiten Wunsch irgendwie? Wenn ja, wie mache ich es?

Vielen Dank im Voraus für Ihre Zeit!

Rog

InformationsquelleAutor Rog | 2011-04-29

Schreibe einen Kommentar