如何让Blaze(Meteor's模板引擎的独立部分)使用动态下载的模板

How to get Blaze (the standalone portion of Meteor's template engine) to use a dynamically downloaded template

本文关键字:独立部 下载 动态 引擎 Meteor Blaze      更新时间:2023-09-26

我正在为动态渲染的模板使用独立的blaze。到目前为止,我喜欢它的大部分,它快速进行细粒度dom更新的能力非常好。

我缺少的是如何处理这样的情况:我已经通过ajax下载了一个模板,并且需要让blaze来解析它,这样我就可以将它注入到我的前端。

我这样做的原因是,我不希望在合适的用户登录之前下载SPA中需要身份验证的部分的模板。例如,一般用户永远不会下载管理页面。

不要麻烦地告诉我我在安全方面做得不对,我已经对每个API请求使用了零信任模型,但我想要的是零信任模型——换句话说,如果你没有通过身份验证,你甚至看不到模板。

我发现了一个可能的替代解决方案,从侧面解决了这个问题。

我的问题是,我不想说管理页面和其他模板在dom检查员中可见。我宁愿根本不加载它们,但我还没有解决这个级别。

然而,我发现,一旦Blaze加载了模板,你就可以从dom中删除实际的模板代码,Blaze仍然会正确地渲染它们。

这至少让我可以稍微混淆一下这些东西。一个有进取心的黑客仍然可以通过监控网络流量来获取这些模板,但至少它们不是公开的。

使用此方法的适当安全性仍然需要缩小和模糊客户端代码,最好通过服务器上的ACL进行某种程度的保护,并调用使用某种形式的ACL验证的API。