2014-06-19 1 views
0

mechanize기계화 : 사이트에 로그인하지 않은 내가 보석으로 다른 사이트에 권한을 부여하기 위해 노력하고있어

내 코드 : 나는 login_zenit을 실행할 때

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 

문제는 그것이 작동하지 않는있다 - I 웹 브라우저에서 사이트에 권한을 부여하지 않았습니다. rails console에서이 코드를 실행해도 완벽하게 작동합니다. 나는 어디에서 실수 했습니까? 어쩌면 redirect_to root_url에 문제가 있습니까?

감사합니다.

+0

에서 생각? –

+0

@FrederickCheung 필자는 레일 앱을 통해 사이트에 원격으로 권한을 부여 할 것으로 기대합니다. 그러나 그것은 일어나지 않습니다 - 나는 아직 사이트에서 승인을받지 못했습니다 –

+0

당신이 그 사이트에서 브라우저를 가리키고 로그인 할 것으로 예상합니까? –

답변

1

일반적으로 불가능합니다. 이 앱을 방문하려면 mobile.zenibet.com에 적절한 쿠키를 설정해야합니다.

당신은 쿠키 값을 가지고 있습니다. 그것들은 mechanize 오브젝트 안에 있습니다.하지만 쿠키를 추출하더라도 올바른 도메인에서 쿠키 값을 설정할 수 없습니다. 앱이 foo.com에서 제공되는 경우 브라우저는 foo.com 또는 그 하위 도메인에 쿠키를 설정할 수는 있지만 다른 임의 도메인에서 쿠키를 설정할 수는 없습니다 (섹션 5.3의 5 절 참조). rfc)

앱이 zenibet.com의 하위 도메인에서 실행하지 않는 한 나는 당신이 운이 일어날 것으로 예상 무슨 대 무슨 일이 일어나고 무엇