Ruby on rails 如何防止用户登录后返回最后一页
我有一个登录页面,用户在其中输入用户名和密码,然后用户被重定向到他的帐户页面,但当我按下后退按钮时,它会将我带回登录页面。如何防止这种情况发生。如果您使用的是Desive,请检查控制器Ruby on rails 如何防止用户登录后返回最后一页,ruby-on-rails,Ruby On Rails,我有一个登录页面,用户在其中输入用户名和密码,然后用户被重定向到他的帐户页面,但当我按下后退按钮时,它会将我带回登录页面。如何防止这种情况发生。如果您使用的是Desive,请检查控制器 before_filter :authenticate_user! 通常,对已登录用户的返回操作不会将其返回表单。authenticate\u user是一种设计方法。如果您没有使用Desive,那么您可以在登录操作中创建一个附加before\u filter,并在用户登录时重定向用户。我使用一个简单的登录?方
before_filter :authenticate_user!
通常,对已登录用户的返回操作不会将其返回表单。
authenticate\u user代码>是一种设计方法。如果您没有使用Desive,那么您可以在登录操作中创建一个附加before\u filter
,并在用户登录时重定向用户。我使用一个简单的登录?方法在呈现我的登录页面的新操作中,大致如下所示:
if signed_in?
redirect_to root_path
end
def signed_in?
!current_user.nil?
end
当用户点击“上一步”按钮时,它不会重新运行服务器代码来呈现登录页面,它只会显示缓存的浏览器版本,因此您可以尝试告诉浏览器不要缓存登录页面,然后添加服务器端检查(如其他人所示)
将此添加到ApplicationController
def no_browser_cache
response.headers["Last-Modified"] = Time.now.httpdate
# response.headers["Expires"] = 0 -> this line kills heroku deployments
# HTTP 1.0
response.headers["Pragma"] = "no-cache"
# HTTP 1.1 'pre-check=0, post-check=0' (IE specific)
response.headers["Cache-Control"] = 'no-store, no-cache, must-revalidate, max-age=0, pre-check=0, post-check=0'
end
然后在执行该方法的登录控制器中放置一个before_过滤器
然后添加“已登录”服务器端检查当访问登录页面时,只需检查用户是否尚未登录即可。如果是,请重定向到其他页面。用它来解决这个问题比摆弄“后退”按钮更容易。感谢您的回复,即使他按了浏览器上的“后退”按钮,但同样不起作用,所以请帮助我