【发布时间】:2012-04-03 15:34:53
【问题描述】:
我有一个带有 Devise 的 Rails 3.2 应用程序,用于对用户进行身份验证。
在本地开发模式下,退出链接不起作用。它会将我重定向到主页而不是显示登录页面,并且会话不会被破坏。但是在 Heroku 上,点击退出链接会正确地让我退出并显示登录页面会破坏用户会话。
在应用程序.haml布局页面中,退出页面的链接是:
= link_to "Sign Out", destroy_user_session_path, :method => :delete
相关路线:
devise_for :users, :controllers => { :sessions => 'sessions' }
new_user_session GET /users/sign_in(.:format) sessions#new
user_session POST /users/sign_in(.:format) sessions#create
destroy_user_session DELETE /users/sign_out(.:format) sessions#destroy
我在我的应用程序中继承了Devise::SessionsController 到SessionsController,如下所示:
class SessionsController < Devise::SessionsController
layout 'devise_layout'
end
现在奇怪的情况是,在会话过期(默认为 30 分钟)后,我再次登录并单击退出链接,它会将我重定向回登录页面。
在 Heroku 上一切正常,但在本地失败。我无法弄清楚本地发生了什么。
我认为我在这里没有做错任何事情,因为同样部署到 Heroku 并且在那里工作正常。本地开发模式有什么问题?
【问题讨论】: