をロスト:は、私は次のステップとキュウリのシナリオを持っているのRails /キュウリ/カピバラ
Given /^I have logged in$/ do
visit root_url
fill_in 'username', with: 'testuser'
fill_in 'password', with: 'testpass'
click_button 'Log In'
end
私は私のシナリオ&尾を実行した場合、私のRailsは、私は1)ログインページが読み込まことを確認することができ、ログ2)ログインの詳細が提出されると、それらは受け入れられ、必要なユーザ情報はRailsのsession
オブジェクトに正しく格納されます.3)ログイン後のページ(したがって403)への302リダイレクト後にセッションデータが失われます。 :
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
ご覧のとおり3番目のリクエストでは、セッションオブジェクトは空です(最後のアクションで正しく設定されていることはわかっていますが)。セッションデータはリダイレクト後のリクエスト間で永続化されないようですが、理由を把握できません(時間がかかりました!)。何か案は?
セッションが保存されている場所を確認する必要があります。クッキーまたはデータベース内。 session_store.rbファイルを参照してください。 –
これはCookieストアを使用しています。 (私は、ログイン/セッションのものは "実際のブラウザ"で絶対にうまく動作することを言及する必要があります。) – skinnyfit