首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存-显示受登录保护的页面

缓存-显示受登录保护的页面
EN

Stack Overflow用户
提问于 2010-07-08 02:22:50
回答 1查看 831关注 0票数 1

如何让用户进行身份验证,然后下载专门为他们创建的离线应用程序?

我正在创建一个离线使用的公钥/私钥加密系统,每个用户都需要能够登录并使用表单“下载”他们的加密/解密页面(app.php)。这个表单将它们转储到它们的app.php页面上,并提供一个缓存清单文件。应用程序需要在本地存储它们的加密和解密密钥,以便通过Javascript使用。在没有任何登录信息的情况下访问此页面(app.php)将返回错误页面。任何更新都是通过ajax对api.php进行的,并存储在本地存储中,因此物理地下载页面并将其保存在某个地方将不起作用(本地存储不适用于本地文件)。

下面是我的cache-manifest.php文件:

代码语言:javascript
复制
<?php header("Content-Type: text/cache-manifest"); ?>CACHE MANIFEST
# v1.2
app.php

NETWORK:
api.php

登录后刷新应用程序(通过POST请求)会导致显示错误页面,而不是浏览器加载缓存的应用程序。

编辑:

我怀疑POST请求与缺少缓存有关。在初始下载过程中观看firebug显示:

代码语言:javascript
复制
POST app.php 200 - Includes the application to be cached
GET app.php 401 - The error page - this is being cached instead
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-08 22:50:55

POST请求是问题所在,所以我必须为每个用户创建一个唯一的下载链接,然后将他们重定向到该链接。该链接需要能够从浏览器中至少点击两次,所以我在使其无效之前,给了每个链接一个1小时的超时。缓存清单文件还必须使用唯一的url进行修改:

http://.../app.php?instanceid=(md5)

代码语言:javascript
复制
<?php header("Content-Type: text/cache-manifest"); ?>CACHE MANIFEST
# v1.2
app.php?instanceid=<?php echo $_GET['instanceid']; ?>


NETWORK:
api.php
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3197690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档