使用Phoenix框架,如何在用户注销并按下浏览器后退按钮后阻止用户访问以前的页面?
答案 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