我正在使用流星和帐户密码包。我正在滚动自己的登录名和密码更改/重置 UI,并想知道...
如何在发送的重置密码电子邮件中自定义密码重置链接Accounts.resetPassword
?
目前它的形式如下:/#/reset-password/<id>'
. 由于我使用的是流星路由器,我想以表格形式发送,'/reset-password/<id>'
这样我就可以用路由捕获它'/reset-password/:id'
。
派对迟到了……
您无需更改整个文本,只需更改 url:
Meteor.startup(function() {
Accounts.urls.resetPassword = function(token) {
return Meteor.absoluteUrl('reset-password/' + token);
};
});
它发生了一点变化:
你必须使用
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}`;
}
);
resetPassword:具有两个字段的对象:
- resetPassword.subject:一个函数,它接受一个用户对象并为重置密码电子邮件的主题行返回一个字符串。
- resetPassword.text:接受用户对象和url的函数,并返回重置密码电子邮件的正文。
您可以自定义将哪个 url 传递给重置密码电子邮件方法:
Accounts.resetPassword.text = function(user, url) {
return "Click this link to reset your password: /reset-password/" + myId;
}