25

我正在使用流星帐户密码包。我正在滚动自己的登录名和密码更改/重置 UI,并想知道...

如何在发送的重置密码电子邮件中自定义密码重置链接Accounts.resetPassword

目前它的形式如下:/#/reset-password/<id>'. 由于我使用的是流星路由器,我想以表格形式发送,'/reset-password/<id>'这样我就可以用路由捕获它'/reset-password/:id'

4

3 回答 3

56

派对迟到了……

您无需更改整个文本,只需更改 url:

Meteor.startup(function() {
 Accounts.urls.resetPassword = function(token) {
    return Meteor.absoluteUrl('reset-password/' + token);
  };
});
于 2015-02-20T05:11:21.903 回答
17

它发生了一点变化:

你必须使用

Accounts.emailTemplates.resetPassword.text

对于 url,您可以简单地替换 hashbang,而不是从 url 解析令牌。举个例子(在咖啡脚本中):

Meteor.startup(() ->
  Accounts.emailTemplates.resetPassword.text = (user, url) ->
     url = url.replace('#/', '')
     return "Click this link to reset your password: " + url
)

ES6

Meteor.startup(() =>
  Accounts.emailTemplates.resetPassword.text = function(user, url) {
     url = url.replace('#/', '');
     return `Click this link to reset your password: ${url}`;
   }
);
于 2013-07-20T11:23:53.433 回答
7

请参阅Meteor 文档中有关电子邮件模板的部分

resetPassword:具有两个字段的对象:

  • resetPassword.subject:一个函数,它接受一个用户对象并为重置密码电子邮件的主题行返回一个字符串。
  • resetPassword.text:接受用户对象和url的函数,并返回重置密码电子邮件的正文。

您可以自定义将哪个 url 传递给重置密码电子邮件方法:

Accounts.resetPassword.text = function(user, url) {
  return "Click this link to reset your password: /reset-password/" + myId;
}
于 2013-01-02T23:11:08.773 回答