Flask:未经身份验证的用户看到缓存的应用,未被重定向到登录页面

时间:2016-02-21 23:37:20

标签: angularjs caching flask flask-login flask-cache

我有一个烧瓶应用程序,只为经过身份验证的用户提供Angular JS应用程序。

使用Flask-Login包中的@login_required实现为app提供服务的视图的访问控制,如下所示:

# The app page is accessible only to authenticated users
@viewer_blueprint.route('/')
@login_required  # Limits access to authenticated users
def serve_app():           
    return send_from_directory(
        app.static_folder + '/app', "index.html")

但是,我注意到在注销后,未经身份验证的用户尝试查看此视图​​时不会重定向到登录页面,而是会看到应用程序的缓存版本。

我在运行开发服务器的Google Chrome和Firefox上观察到此行为。

如何仅在未经身份验证的用户的情况下强制禁止缓存? (我仍然可能希望为登录用户进行缓存。)(stackoverflow上的相关问题/答案似乎只能解决与身份验证状态无关的禁用缓存周期,这对我来说是一种不必要的妥协。)

检查Firebug中的XHR日志似乎表明浏览器甚至从未向受保护的应用程序视图发出原始请求。它只是直接从缓存加载。

编辑1:

一种可能性是检查前端应用程序中的身份验证并强制重定向到登录页面(如果未经过身份验证),但我对后端解决方案感兴趣,该解决方案可以“自动”处理此问题,以便避免在前端需要额外的照顾(毕竟,这不是@login_required,从道德上说,应该/确实声称要做什么?)。

0 个答案:

没有答案