这已经在这里和这里以类似的形式被问过,但它似乎非常重要,并且框架正在快速发展,所以我要再次提出它:
假设您的登录页面需要面向公共互联网,您如何防止 Meteor 将所有经过身份验证的用户模板发送到未经过身份验证的客户端?
示例用例:您有一些非常独特的分析/性能指标想要保密。您已经构建了模板来可视化每个模板。只需访问登录页面,Meteor 就会向任何随机发送模板,即使是未填充的模板,也会泄露大量专有信息。
我看到了两个建议:
- 将管理员分解为一个单独的应用程序。假设管理员登录面向公共互联网,这并不能解决问题,除非我遗漏了什么。
- 将模板放在
public
文件夹或等效文件夹中并动态加载它们。这也无济于事,因为文件名将从将发送到客户端的其他模板中可见。
我唯一能想到的是将模板字符串存储在server
文件夹中,并让客户端在登录后调用 aMeteor.method
来检索和呈现它们。如果你想让它们表现得像普通的客户端模板,你就不得不使用内部 API(例如Meteor._def_template)。
有没有更优雅的方法来做到这一点?