用户会话超时后无法立即登录(Devise Gem)

时间:2014-06-17 21:20:15

标签: ruby-on-rails ruby devise

我遇到的问题是,如果我的用户会话超时(使用设计宝石),我会尝试转到另一个屏幕,它会将我带回登录页面,即正确。但是,网址不会从我尝试前往超时之前的页面发生变化。

例如,会话将结束,但如果我在超时前的标题,我仍然会被带到这里:http://localhost:3000/users/edit

这样做的问题是,在我刷新页面之前,它不允许我登录 - 这会改变网址:http://localhost:3000/users/sign_in

有什么想法吗?

修改

日志表示同一会话的两个不同浏览器选项卡。前两段显示用户注销,最后两段显示当用户(看起来仍然在第二个选项卡上登录)尝试转到其他页面时的样子。主要区别在于日志没有显示"开始GET" / projects / messageChannel""对于第二个选项卡。但是当我点击刷新时它会出现。 下面的服务器日志:

Started GET "/" for XXXXXXX at 2014-06-18 10:09:53 -0400
Processing by Devise::SessionsController#new as HTML
  Rendered layouts/_messages.html.erb (0.1ms)
  Rendered devise/sessions/new.html.erb within layouts/application (2.6ms)
  Rendered layouts/_navigation.html.slim (0.4ms)
Completed 200 OK in 11ms (Views: 10.1ms | ActiveRecord: 0.0ms)


Started GET "/projects/messageChannel" for XXXXXXX at 2014-06-18 10:09:53 -0400
Processing by ProjectsController#messageChannel as JSON
Completed 401 Unauthorized in 1ms


Started GET "/dashboard/2" for XXXXXXX at 2014-06-18 10:09:59 -0400
Processing by UsersController#dashBoard as HTML
  Parameters: {"foo"=>"dashBoard", "id"=>"2"}
Completed 401 Unauthorized in 1ms


Started GET "/users/sign_in" for XXXXXXX at 2014-06-18 10:09:59 -0400
Processing by Devise::SessionsController#new as HTML
  Rendered layouts/_messages.html.erb (0.1ms)
  Rendered devise/sessions/new.html.erb within layouts/application (2.3ms)
  Rendered layouts/_navigation.html.slim (0.4ms)
Completed 200 OK in 11ms (Views: 10.1ms | ActiveRecord: 0.0ms)

1 个答案:

答案 0 :(得分:0)

答案就在我面前。我从应用程序中删除了Turbolinks并修复了问题。基本上,由于Turbolinks,它只是渲染页面而不实际重新加载任何东西(javascript文件等)。

相关问题