Tôi đang cố gắng đăng nhập vào một trang web và chuyển hướng đến một trang được bảo mật từ hành động đường ray. Mã của tôi trông giống như thế này.Cookie phiên đăng nhập cửa hàng trong trình duyệt bằng cách sử dụng cơ chế ruby
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
Đăng nhập thành công trong nền, nhưng chuyển hướng thực sự đến trang quản trị đang yêu cầu xác thực trong trình duyệt vì cookie phiên không được lưu trữ trong trình duyệt. Đã thử lưu trữ các cookie từ cookie_jar
, nhưng không thể tìm thấy cách chính xác để thực hiện điều đó. Ai đó có thể giúp tôi trong việc này?
Đặt đại lý một ví dụ var hoặc chuyển nó sang redirect_to. Nó có cookie, không cần phải lưu trữ nó. – pguardiario
Cảm ơn. Nhưng làm cho @agent = Mechanize.new không hoạt động. Ngoài ra, redirect_to không lấy đại lý làm tham số. Có thể hiển thị một ví dụ cho điều đó không? – Vijendra
Tôi không biết làm thế nào để giúp bạn mà không bị hạ mình. Chỉ cần suy nghĩ về lý do tại sao bạn không nên instantiating đối tượng Mechanize như là một biến địa phương của phương pháp của bạn (gợi ý - nó sẽ không dính xung quanh lâu dài.) – pguardiario