我正在尝试使用 gem 授权到其他站点 mechanize
我的代码:
def login_zenit
agent = Mechanize.new
agent.get('http://mobile.zenitbet.com/') do |p|
f = p.forms.first
f.login = 'login'
f.fields[1].value = 'password'
f.submit
end
agent.get('http://mobile.zenitbet.com/')
redirect_to root_url
end
问题是当我运行
login_zenit
时它不起作用 - 我没有在 Web 浏览器中授权该站点。尽管如果我在 rails console
中运行此代码它完美地工作。我在哪里做错了?可能 redirect_to root_url
有问题?谢谢!
最佳答案
一般来说是不可能的。为此,访问您的应用程序需要为 mobile.zenibet.com 设置适当的 cookie。
您确实拥有这些 cookie 值 - 它们位于 Mechanize 对象内,但即使您提取它们,您也无法将它们设置在正确的域中。如果您的应用程序是从 foo.com 提供的,那么浏览器将允许您在 foo.com 或其任何子域上设置 cookie,但它不会让您在另一个任意域上设置 cookie(请参阅第 5.3 节中的第 5 点) rfc )
除非您的应用程序在 zenibet.com 的子域上运行,否则我认为您不走运
关于ruby-on-rails - Mechanize :未登录本站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301866/