【问题标题】:Is it possible cache password protected content in a web app for use in an offline web app (iOS / Android)?是否可以在网络应用程序中缓存受密码保护的内容以供离线网络应用程序(iOS / Android)使用?
【发布时间】:2012-08-18 23:10:00
【问题描述】:

基本上是这样的场景:

  • 我有一个移动网络应用程序
  • 网络应用几乎没有公开内容,但有一个登录系统
  • 登录后,用户可以根据自己的喜好访问特定页面

我想做的事:

允许网络应用的离线缓存,并根据登录的用户继续提供自定义内容(是的,显然数据将被缓存,并且用户之前需要至少登录一次)。

问题:

* 已编辑

基本上,我希望能够在在线和离线登录后访问相同的数据,但是当离线访问网络应用程序时,将没有密码保护。我希望/假设通过使用清单文件,我可以让移动浏览器缓存我作为登录用户看到的数据,然后在离线时无需密码重新向我显示?

提前感谢您的帮助:)

【问题讨论】:

    标签: android ios html web-applications mobile


    【解决方案1】:

    这是不可能的。缓存只能存储 webapp 的客户端部分,但登录机制和验证在服务器端代码中。客户端永远不会记住以前输入的值。

    如果您想在离线代码中使用移动设备上的服务,则必须编写一个存储凭据和数据的移动应用程序。

    【讨论】:

    • 有没有办法使用缓存来存储用户登录详细信息(因为他们正在登录网站)并使用它来加密缓存中存储的数据(离线网页).. . 然后在使用凭据登录(离线)时解密缓存 - 因此没有真正的登录过程但是仍然提供内容以更正登录详细信息?也许我在移动缓存/本地存储的能力方面领先于我:(
    • 没有。您无法控制 Web 浏览器的缓存机制。
    • 感谢您的快速响应!所以如果失败了,那么我猜至少可以在登录到网络应用程序时缓存自定义内容,然后在离线时提供它(当然没有数据保护/身份验证)? :S
    • 如果你想在浏览器中使用它,你无法判断它是否可以工作。正如我所说,您无法控制缓存。您应该完全忘记这种情况。如果您想要移动设备的离线模式,请为此编写应用程序。
    • 对不起,我有点困惑,因为如果我们不能依赖缓存,那么我们就不能拥有移动网络应用程序,对吧?我们可以不偶尔更新清单文件等,以便离线保存最新版本的网络应用程序吗?抱歉,最后一个让你有点失落了……
    【解决方案2】:

    我只是在写一个答案,因为我发现这是可能的。

    基本上解决方案是不在网站的登录页面(或主页)上包含清单文件。登录后(我们称之为登录页面),然后提供清单文件,然后允许缓存“受保护”页面。

    当用户离线时,webapp 检查它是否在线(客户端),如果它离线,它将绕过登录屏幕并提供缓存内容重定向到网站登录页面(如上所述)。

    此外,我提到根据偏好向用户显示特定内容 - 这是通过使用动态清单文件实现的 - 因此不同用户的浏览器被告知缓存不同的页面 :) 设置是一个巨大的痛苦但现在似乎运行良好一段时间了。

    由于数据被缓存,它不一定是 100% 安全的,但如上所述,如果用户之前登录过特定设备,那么他们可以离线查看内容而无需再次登录 - 这安全级别足以满足我的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多