问题描述
根据帐户包上的Meteor's documentation:
默认情况下,当前用户的用户名、电子邮件和个人资料会发布到客户端。
是否可以阻止 Meteor 自动发布这些字段?我知道这仅适用于已登录的用户,但该用户可以散步或在公共场所上网。
此代码结构似乎在 accounts_server.js 中定义(搜索 autopublish 和 email - 第 37 和 696 行)。
解决方法
最直接的方法是修改 Accounts._defaultPublishFields.projection
的值并删除 email 键。在保留其他值的同时执行此操作的一种简单方法是使用静止和传播的组合,如下所示:
import { Accounts } from 'meteor/accounts-base';
const { emails,...fields } = Accounts._defaultPublishFields.projection;
Accounts._defaultPublishFields.projection = { ...fields };
只要确保它在服务器上运行就可以了。