注销后,使用后退按钮阻止用户访问上一页

时间:2015-11-05 20:19:08

标签: logout elixir phoenix-framework

使用Phoenix框架,如何在用户注销并按下浏览器后退按钮后阻止用户访问以前的页面?

1 个答案:

答案 0 :(得分:3)

浏览器可以访问该页面,因为默认情况下允许缓存响应。如果要阻止这种情况,则需要在this similar question上的需要身份验证的页面上设置相应的HTTP标头:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

您可以在插件

中执行此操作
defmodule MyApp.PreventCaching do
  import Plug.Conn

  def init(options) do
    options
  end

  def call(conn, _opts) do
    conn
    |> put_resp_header(conn, "cache-control", "no-cache, no-store, must-revalidate")
    |> put_resp_header(conn, "pragma", "no-cache")
    |> put_resp_header(conn, "expires", "0")
  end
end

然后在您的路由器(或控制器)中,您可以使用该插件在需要身份验证的所有页面上设置标题

plug MyApp.PreventCaching