1

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

为应用程序服务的视图的访问控制是使用 Flask-Login 包中的 @login_required 实现的,如下所示:

# 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,从道德上讲,应该/确实声称要做吗?)。

4

0 回答 0