Sto tentando di accedere a un sito Web e di reindirizzare a una pagina protetta da un'azione di un binario. Il mio codice è simile a questo.Archivia cookie di sessione di login nel browser utilizzando ruby mechanize
def redirect_to_external
agent = Mechanize.new
page = agent.get('http://example.com/home.asp')
login_form = page.form_with(:name => "loginForm")
login_form.login = 'username'
login_form.password = 'password'
agent.submit(login_form)
#cookies = agent.cookie_jar.store.map {|i| i} #need to store the cookie with a specific in browser
redirect_to('http://example.com/admin.asp') #page behind password protection
end
accesso riesce in background, ma vero e proprio reindirizzamento alla pagina di amministrazione sta chiedendo ancora una volta per l'autenticazione nel browser, come il cookie di sessione non viene memorizzato nel browser. Ho provato a memorizzare i cookie da cookie_jar
, ma non ho trovato il modo esatto per farlo. Qualcuno mi può aiutare in questo?
Rendi agent un'istanza var o passala a redirect_to. Ha il cookie, non è necessario memorizzarlo. – pguardiario
Grazie. Ma rendendo @agent = Mechanize.new non ha funzionato. Inoltre, redirect_to non accetta l'agente come parametro. È possibile mostrare un esempio per questo per favore? – Vijendra
Non so come aiutarti senza essere accondiscendente. Pensa solo al motivo per cui non dovresti istanziare l'oggetto Mechanize come una variabile locale del tuo metodo (suggerimento - non resterà a lungo.) – pguardiario