Je suis assez nouveau à Ruby et RoR, et j'ai eu des problèmes avec un problème et je n'arrive à rien. Fondamentalement, je construis un webservice "proxy" qui va gérer certaines demandes, en les transmettant à un site web tiers. La réponse reçue du site Web de la tierce partie est en HTML, qui sera ensuite analysée et une réponse XML appropriée sera donnée.Envoyer des demandes POST à partir du contrôleur Rails pour l'authentification
Je suis à un point où je dois envoyer des requêtes POST via mon contrôleur Rails pour authentifier un utilisateur, que je fais en utilisant ce 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)
Mon problème se trouve sur la réponse que je je reçois. Cette requête POST spécifique, lorsqu'elle est réussie (c'est-à-dire que l'utilisateur s'est authentifié avec succès), renvoie une redirection 302. Cela en soi est pas un problème, car je peux suivre la redirection en obtenant la valeur d'en-tête « emplacement »:
redirectLocation = response['location']
Là où je suis en train coincé est en moi maintenant authentifiées en suivant la redirection avec la ligne suivante:
redirectResponse = Net::HTTP.get_response(URI.parse(redirectLocation))
Cela fait suite à la redirection mais renvoie une réponse montrant que je ne suis pas ?? authentifie
Je ne comprends pas vraiment pourquoi cela se produit. Je vois qu'il ya un cookie d'authentification étant retourné avec ma réponse originale en lisant:
response['cookie']
Donc finalement ma question est ce que dois-je faire pour obtenir le serveur de reconnaître mon statut d'authentification? Passer le cookie avec ma deuxième demande en quelque sorte? Si oui, comment puis-je le faire?
Merci beaucoup d'avance pour votre temps!
Rog
Merci, mais comment faire? – Rog
vient d'ajouter un lien vers un exemple. c'est assez facile. son rubis;) – thekindofme
Merci tas pour m'indiquer dans la bonne direction. – Rog