我正在使用flask创建一个需要登录和注销的网站。我正在使用Flask-Security来解决这个问题。我的问题是,注销后,如果单击“后退”按钮,则会返回到用户页面。是否可以通过按Flask中的“后退”按钮来防止注销后返回会话?
如果我点击后退按钮,我将返回到用户页面
这实际上是一个不正确的说法。
当用户导航时,Web 浏览器在本地缓存页面。如果用户注销然后点击后退按钮,将显示页面的缓存版本。用户不会返回用户会话,用户会话仍然关闭。
您必须欺骗浏览器以避免这种行为,这可能很难。例如,如果您的页面仅包含基本布局,然后当您点击后退按钮时通过 ajax 请求所有内容,ajax 将发现服务器中没有用户会话并且不会显示任何内容。
您可以通过Cache-Control在每个响应后添加标头来告诉浏览器不要缓存任何页面。如果只希望对此做出某些响应,则可以将其添加到特定视图中。
# Ensure responses aren't cached
@app.after_request
def after_request(response):
response.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
return response
Run Code Online (Sandbox Code Playgroud)
使用Cache-Control标头来防止页面被缓存。
response.headers.add('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4725 次 |
| 最近记录: |