2010-07-07 3 views
1

사용자를 인증 한 다음 해당 사용자 전용으로 만든 오프라인 응용 프로그램을 다운로드하려면 어떻게합니까?로그인으로 보호 된 페이지의 캐시 매니페스트

오프라인 사용을 위해 공개/비공개 키 암호화 시스템을 만들고 각 사용자는 양식을 사용하여 자신의 암호화/해독 페이지 (app.php)에 로그인하고 "다운로드"할 수 있어야합니다. 이 양식은 app.php 페이지에서 캐시 매니페스트 파일을 제공합니다. 응용 프로그램은 Javascript를 통해 사용할 수 있도록 로컬로 암호화 및 암호 해독 키를 저장해야합니다. 로그인 정보없이이 페이지 (app.php)에 액세스하면 오류 페이지가 반환됩니다. 모든 업데이트는 ajax를 통해 api.php로 만들어지고 localstorage에 저장되므로 물리적으로 페이지를 다운로드하고 어딘가에 저장하면 작동하지 않습니다 (localstorage가 로컬 파일에서 작동하지 않음). 오류 페이지 대신 캐시 된 응용 프로그램을로드 브라우저의 표시되는 리드 (POST 요청을 통해)

<?php header("Content-Type: text/cache-manifest"); ?>CACHE MANIFEST 
# v1.2 
app.php 

NETWORK: 
api.php 

그것은에 로그인 한 후 응용 프로그램을 새로 고침 :

은 여기 내 캐시 manifest.php 파일입니다.

편집 :

은 내가 POST 요청이 캐시의 부족과 함께 할 수있는 뭔가가 생각한다. 초기 다운로드 진행하는 동안 불을 지르고 보는 것은 보여줍니다

POST app.php 200 - Includes the application to be cached 
GET app.php 401 - The error page - this is being cached instead 

답변

1

POST 요청 문제, 그래서 다음, 각 사용자에 대해 고유의 다운로드 링크를 생성 링크로 리디렉션했다. 링크는 브라우저에서 적어도 두 번 이상 닿을 수 있어야하므로 각 링크에 무효화하기 전에 1 시간의 시간 초과를 부여했습니다.

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

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


NETWORK: 
api.php 
: 캐시 매니페스트 파일에는 고유 한 URL로 수정해야했다
관련 문제