Javascript Meteor.js-获取/获取注册令牌(来自Accounts.sendEnrollmentEmail)

Javascript Meteor.js-获取/获取注册令牌(来自Accounts.sendEnrollmentEmail),javascript,meteor,Javascript,Meteor,我不知道如何从Accounts.sendEnrollmentEmail功能获取注册令牌 我知道该功能会直接向用户发送邮件,最终看起来是这样的: 但是,由于我想通过不同的服务(例如邮戳)发送注册邮件,因此我只需要访问令牌部分fcxzbbqinzgbllaopu8iv11jp9djeg-e1auAHDsh6S 如何做到这一点?Accounts.sendEnrollmentEmail(userId,email)函数生成一个随机令牌,并将其保存在用户的服务.密码.重置.令牌字段中 生成令牌的代码是:

我不知道如何从Accounts.sendEnrollmentEmail功能获取注册令牌

我知道该功能会直接向用户发送邮件,最终看起来是这样的:

但是,由于我想通过不同的服务(例如邮戳)发送注册邮件,因此我只需要访问令牌部分fcxzbbqinzgbllaopu8iv11jp9djeg-e1auAHDsh6S


如何做到这一点?

Accounts.sendEnrollmentEmail(userId,email)函数生成一个随机令牌,并将其保存在用户的
服务.密码.重置.令牌
字段中

生成令牌的代码是:

  var token = Random.secret();
  var when = new Date();
  var tokenRecord = {
    token: token,
    email: email,
    when: when
  };
  Meteor.users.update(userId, {$set: {
    "services.password.reset": tokenRecord
  }});
(您可以查看函数的源代码)

然后,它使用
电子邮件
软件包向用户发送电子邮件。如果您想使用其他服务发送电子邮件,您基本上有两种选择:

  • 自己使用相同的约定(即,创建相同的记录并在自己的功能中使用自己的电子邮件服务)
  • 使用现有功能,允许邮件传递以静默方式失败,然后查询用户文档中的令牌并自行发送电子邮件
两者都不是一个特别好的选择,但两者都将暂时奏效。我希望他们能把这个部分重构成它自己的功能

请注意,在下一个Meteor版本的发布过程中,accounts包预计将经历一些更改


顺便说一句,此功能与Accounts.sendResetPasswordEmail非常相似,您可能还希望覆盖或创建自己的版本。

噢,伙计,感谢大家向我澄清这一点!我整个周末都在想办法解决这个问题!很高兴能帮忙。没有什么比查看源代码和测试更能更好地理解内部结构了。