我想为在Meteor.js上构建的应用程序实现更改电子邮件功能
流程将是:
1.用户将通过“更改电子邮件”表单请求更改电子邮件。
<div class="settings-container">
<div class="container-header medium-margin-top bold">Change Email</div>
<div class="container-inner less-margin-top">
<form>
<div>
<dl>
<dt><label for="user_email_address">Email Address</label></dt>
<dd><input type="email" class="form-control" id="new-email"></dd>
</dl>
</div>
<button type="submit" id="btn-change-email" class="btn btn-success">Send Verification Link</button>
</form>
</div>
</div>
2.表格使用Accounts.sendVerificationEmail
发送验证邮件我创建了一个方法,当需要发送验证邮件时调用该方法
change_email: function(userId, email) {
Accounts.sendVerificationEmail(userId, email);
},
3.一旦用户验证新的电子邮件地址,电子邮件地址就会更改。
我无法想到第三步的正确解决方案。我想过使用 Accounts.verifyEmail ,但想不出办法更改电子邮件地址。
答案 0 :(得分:2)
好像你正在倒退它。您应首先将新电子邮件添加到Meteor.user.emails
阵列,或者如果您确实要更新现有条目,则应替换现有条目,而不是使用对多个电子邮件地址的内置支持。然后您可以发送验证邮件。