Ruby on rails 如何防止用户登录后返回最后一页

Ruby on rails 如何防止用户登录后返回最后一页,ruby-on-rails,Ruby On Rails,我有一个登录页面,用户在其中输入用户名和密码,然后用户被重定向到他的帐户页面,但当我按下后退按钮时,它会将我带回登录页面。如何防止这种情况发生。如果您使用的是Desive,请检查控制器 before_filter :authenticate_user! 通常,对已登录用户的返回操作不会将其返回表单。authenticate\u user是一种设计方法。如果您没有使用Desive,那么您可以在登录操作中创建一个附加before\u filter,并在用户登录时重定向用户。我使用一个简单的登录?方

我有一个登录页面,用户在其中输入用户名和密码,然后用户被重定向到他的帐户页面,但当我按下后退按钮时,它会将我带回登录页面。如何防止这种情况发生。

如果您使用的是Desive,请检查控制器

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_过滤器


然后添加“已登录”服务器端检查

当访问登录页面时,只需检查用户是否尚未登录即可。如果是,请重定向到其他页面。用它来解决这个问题比摆弄“后退”按钮更容易。感谢您的回复,即使他按了浏览器上的“后退”按钮,但同样不起作用,所以请帮助我