【发布时间】:2016-03-18 17:08:15
【问题描述】:
我正在使用 Meteor 构建一个网络应用程序,并且我正在使用 Meteor Accounts-password 包和 accounts-facebook 包来简化登录。用户有一些与他们相关的信息,例如电子邮件和密码,但我想在创建帐户后将更多信息与他们相关联。
我知道有两种方法可以做到这一点,我想知道该怎么做,因为我似乎无法在互联网上找到任何有关它的信息。
选项 1:
我在 Meteor.user.profile 对象中添加了所有附加信息(如用户名、显示名和其他内容)。这似乎是一个糟糕的解决方案,因为默认情况下用户可以访问配置文件对象中的所有内容,而我必须手动拒绝他们访问。
选项 2:
我创建了一个新的集合,即个人资料信息,并存储有关用户的所有其他数据,然后通过某个共享密钥将其绑定到 meteor.user 对象。这似乎也是一个糟糕的解决方案,因为我必须像在 SQL 中那样拆分我的数据,并且没有 mongodb 中嵌入文档的所有优势。
到目前为止,这是我的思考过程,我不知道如何继续。 哪个选项似乎是最好的方法,还是有更好的选项 3?
提前致谢。
【问题讨论】:
-
如果用户可以访问那种看似公开的信息,为什么会出现问题?另一种选择是在配置文件对象之外更新用户,在这种情况下,您可以选择是否发布该字段。
-
@forallepsilon 我可以更新 Meteor.user 对象中的任何内容吗?我可以提供一个字段,例如名为“附加数据”的字段,然后将我的所有数据存储在该字段的 json 对象中吗?
-
你可能现在测试了,是的!但是,您可能希望选择不同的变量名称。
user.additional-data将使仪表扣解释为减去。您可以使用user['additional-data']访问它,但最好使用更好的名称。 -
@forallepsilon 是的,这只是一个示例名称。感谢您的帮助。
标签: mongodb meteor database-design meteor-accounts