LS,新用户可以通过index.html请求访问令牌。此令牌将发送到他/她的电子邮件。然后,必须将令牌粘贴到令牌字段中才能访问表单。验证令牌后,将显示表单。为了防止在插入正确的令牌之前访问表单的源代码,我希望在验证令牌之后进行缓存。我使用了服务工作者的标准最小注册、安装和激活。
<?php
if (exists_token($_COOKIE['session_token'], 'sessions')){
readfile('form.html');
}
....
?>如何才能将缓存延迟到令牌验证之后,即呈现form.html时?
发布于 2019-05-01 17:32:10
我认为您必须在Service Worker脚本中编写一些自定义逻辑。您可以使用window.postMessage在页面的JavaScript中与SW进行通信。使用它,您将能够在缺省情况下不缓存这个或那个,然后,当您的条件满足时,让SW知道缓存可以通过postMessage发生。
然而,我不确定你的方法是否明智。如果令牌过期并且页面是SW缓存,将来会发生什么情况?您需要编写自定义缓存逐出代码来处理此问题。
我不知道您的应用程序逻辑,但也许您总是可以呈现表单并对JS隐藏它,或者基于令牌验证状态或smth使用PHP/CSS。
https://stackoverflow.com/questions/55922887
复制相似问题