如何更改meteor中的重置密码URL?

Dio*_*nes 23 javascript meteor

我正在使用meteoraccounts-password包.我正在滚动我自己的登录名和密码更改/重置UI,想知道...

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

目前它的形式如下:/#/reset-password/<id>'.由于我使用流星路由器,我想发送表格,'/reset-password/<id>'以便我可以抓住路线'/reset-password/:id'.

mae*_*rsu 54

迟到了...

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

Meteor.startup(function() {
 Accounts.urls.resetPassword = function(token) {
    return Meteor.absoluteUrl('reset-password/' + token);
  };
});
Run Code Online (Sandbox Code Playgroud)

  • 我知道当我看到@ david-lawson参与这个答案时,它将成为我所寻找的金币!救了我很多麻烦 - 希望我能早点找到它.为什么这不在文档中?多谢你们. (2认同)

Der*_*mbo 17

它改变了一点:

你必须使用

Accounts.emailTemplates.resetPassword.text
Run Code Online (Sandbox Code Playgroud)

对于url,您可以简单地替换hashbang而不是从url解析令牌.作为一个例子(在coffeescript中):

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


Rah*_*hul 7

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

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

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

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

Accounts.resetPassword.text = function(user, url) {
  return "Click this link to reset your password: /reset-password/" + myId;
}
Run Code Online (Sandbox Code Playgroud)

  • ```var id = url.substring(url.lastIndexOf('/')+ 1)```可能是一个更安全的赌注,因为基本网址可能会改变. (2认同)