2012-12-29 23 views
2

所以内置的meteor身份验证系统存储用户的电子邮件用户下,像这样:什么是更新流星中的用户电子邮件地址的最佳方式?

emails: [ { address: [email protected], verified: true} ] 

是否有一个“流星”的方式来设置一个主电子邮件,以及更新的电子邮件地址(或添加/删除电子邮件) ?

在我看来,如果将是一个很大的简单,如果他们储存像这样:

emails: { '[email protected]': { verified: true } } 

回答

1

你的建议的对象格式是没有意义的,因为那时我怎么请求对象?通常我会说obj.emails[i].address,现在我不得不说...什么? for (var key in obj.emails) { var email = obj.emails[key]; }?这太复杂了。

要更新电子邮件地址,您应该更改用户记录中的电子邮件地址,将其标记为未验证,并使用Account.sendVerificationEmail启动验证过程。

+1

那么你会得到与obj.emails [地址]的电子邮件,然后你不必看通过一个数组。据推测,顺序无关紧要,唯一性也不重要,因此它比数组更有意义。 – Diogenes

+1

但是,您需要事先知道地址才能够查找它。情况并非总是如此。该对象不存在只是为了告诉你它是否被验证,它存在告诉你哪些电子邮件地址已被注册为该用户。 – Rahul

+0

那么还需要找到第一个验证的地址,或者保存主要的电子邮件地址('''profile.primaryEmail''',或''emails [someNumber]:{verified:true,primary:true,address: someAddress}?''')。它很容易做到,但它有点奇怪,因为流星的其余部分似乎包含“电池”。首先编码世界问题,哈哈。 – Diogenes

相关问题