내가 다음 단계와 오이 시나리오가 있습니다분실 세션/오이/카피 바라
Given /^I have logged in$/ do
visit root_url
fill_in 'username', with: 'testuser'
fill_in 'password', with: 'testpass'
click_button 'Log In'
end
내 시나리오 & 꼬리를 실행하면 내 레일 로그, 내가 확인할 수 있습니다 1) 로그인 페이지가로드 즉, 2) 로그인 세부 사항이 제출 될 때, 그것들은 받아 들여지고 필요한 사용자 정보는 Rails의 session
객체에 올바르게 저장되고, 3) 로그인 후 페이지로의 302 리다이렉션 (따라서 403)에 이어 세션 데이터가 손실된다. :
Started GET "/" for 127.0.0.1 at 2012-04-18 16:09:41 +0100
Processing by HomeController#index as HTML
Rendered home/index.html.erb within layouts/application (4.6ms)
Completed 200 OK in 9ms (Views: 8.3ms)
Started POST "/" for 127.0.0.1 at 2012-04-18 16:09:41 +0100
Processing by HomeController#index as HTML
Parameters: {"utf8"=>"✓", "is_submitted"=>"true", "username"=>"testuser", "password"=>"[FILTERED]", "commit"=>"Log In"}
DEBUG - login success
DEBUG - session: {"UserId"=>"19fd75c8-0e80-4832-94af-6a93ee74bf46", "Username"=>"testuser", "Password"=>"d68579bfdac2321d05f19042d8dbc49b9dd611c8", "Name"=>"Active User", "Active"=>true}
Redirected to http://www.example.com/app
Completed 302 Found in 3ms
Started GET "/app" for 127.0.0.1 at 2012-04-18 16:09:41 +0100
Processing by HomeController#app as HTML
DEBUG - session: {}
Redirected to http://www.example.com/
Completed 403 Forbidden in 1ms
세 번째 요청에서 세션 객체는 비어 있습니다 (마지막 액션에서 제대로 설정되었음을 알지만). 세션 데이터는 리디렉션 후에도 여러 요청에 걸쳐 지속되지 않지만 그 이유를 파악할 수없는 것으로 보입니다 (몇 시간을 소비했습니다!). 어떤 아이디어? 내 응용 프로그램 컨트롤러에서 인증 로직은이 작업을 수행 (user
해시는 NB), 그것은 하지 작업을 수행하는 경우
세션이 저장된 위치를 확인해야합니다. 쿠키 또는 데이터베이스. session_store.rb 파일을 참조하십시오. –
쿠키 저장소를 사용 중입니다. (나는 로그인/세션 물건이 "진짜 브라우저"에서 절대적으로 잘 작동한다고 언급해야한다.) – skinnyfit