第一:我看了很多这样的帖子,没有找到满意的答案。我希望我没有错过答案。
:
-
我正在运行一个Laravel应用程序(PHP 7.3)
-
我使用FastCGI(php fpm)和Nginx实现了一个完整的页面缓存
-
它工作得很好,但是像csrf令牌这样的动态东西不会被刷新
-
我的目标:获得一个完整的缓存页面,但是使用正确的CSRF令牌进行用户会话
我试过的
:
-
我钻研过
Nginx SSI
csrf_token()
-
我试过了
file
和
virtual
.php
文件和API路由。它在我的刀片模板中从未工作过。(奇怪的是,据我所知,它基于响应内容类型,如text/html)。即使是最基本的
<!--#echo var="DATE_LOCAL" -->
不工作,被Nginx剥离(不响应)。
-
相同的测试
.html
文件
工作
-
-
似乎可以使用Varnish作为代理来让ESI工作。但这对我们的基础设施有很多改变。
-
最后,我能想到的唯一解决方案是让Ajax API请求onLoad来获取令牌。在每次加载页面时。这似乎不是一个很好的方法,但是,我没有选择(是吗?)。
-
也许我可以让Nginx认为我的根index.php是HTML,从而让SSI工作?(
inspiration
)
-
SSI/ESI似乎正是我所需要的。但这似乎也是一项“古老”的技术。不过,我还是找不到真正的替代品。
问题
:
-
-
为ESI安装所有东西值吗?
-
Ajax是我唯一的解决方案吗?
-
还有什么我会错过的吗?
谢谢。我知道也有类似的问题,但我找不到确切的答案。