【问题标题】:dealing with oauth_required in cached pages处理缓存页面中的 oauth_required
【发布时间】:2015-01-22 19:51:35
【问题描述】:

我正在开发一个基于 Google App Engine (Python/webapp2) 的网络应用程序。 由于该应用程序使用了多个 Google API,我已经修饰了应用程序 RequestHandlers 的 @DECORATOR.oauth_required get/post 方法。

一切正常,除非我停止使用该网站一段时间,当我再次使用该网站时,我开始注意到 API 停止工作。我认为这是由于授权已过期但未显示登录表单,因为浏览器正在使用该页面的缓存版本。我是这么认为的,因为如果我强制重新加载(shift+reload),登录表单会突然出现。

我应该怎么做才能避免这种情况?

【问题讨论】:

  • 当您遇到此问题时,能否请您从 chrome 开发工具中的控制台和/或网络选项卡中发布任何相关信息?我试图找出问题出在哪里。如果可能的话,您能否创建一个基本且简单的应用程序的 git 存储库来演示该问题,也许通过获取您当前的代码、复制它并删除任何非必要的内容?

标签: python google-app-engine google-api webapp2


【解决方案1】:

您可以通过发回正确的 HTTP 标头来指示浏览器不要缓存您的页面:

resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"

【讨论】:

  • 但是我想让浏览器缓存页面
  • 如果您遵循这种方法,从您的页面中链接的所有内容仍将被缓存,例如图像、脚本和 css。但显然你不想在不验证用户是否登录的情况下缓存基本 HTML。
猜你喜欢
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多