2013-01-02 77 views
22

我使用meteor以及accounts-password包。我在我自己的滾動登錄名和密碼變更/重置UI,想知道...如何更改流星中的重置密碼URL?

如何自定義發送作爲Accounts.resetPassword結果在重置密碼電子郵件密碼重置鏈接?

目前它的形式如下:/#/reset-password/<id>'。由於我使用的是meteor router,因此我希望以'/reset-password/<id>'的形式發送,以便我可以通過'/reset-password/:id'路徑找到它。

回答

7

section on email templates in the Meteor docs

resetPassword:

  • resetPassword.subject:一個函數,用戶對象,並返回一個復位的主題行字符串具有兩個字段的Object密碼郵件。
  • resetPassword.text:一個函數,它接受用戶對象和url,並返回重置密碼電子郵件的正文文本。

您可以自定義URL傳遞給重置密碼電子郵件方法:

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

啊哈,我只是無法找到該部分。謝謝。 – Diogenes

+0

等待如何獲得'''myId'''?傳遞給函數的url看起來像我想改變的原始URL。 – Diogenes

+0

'myId'只是一個例子,你應該自己實現這個方法。 – Rahul

15

它改變了一點點:

你必須使用

Accounts.emailTemplates.resetPassword.text 

對於url,您可以簡單地替換hashbang而不是從url解析令牌。由於(在CoffeeScript中)的例子:

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

遲到了......

而不是改變整個文本,你可以改變的URL:

Meteor.startup(function() { 
Accounts.urls.resetPassword = function(token) { 
    return Meteor.absoluteUrl('reset-password/' + token); 
    }; 
}); 
+3

獲取重置令牌的示例。保存當天!感謝分享這一個! –

+0

修改網址的作品很好,但發送的令牌是另一個由於某種原因 – Maertz

+2

我知道當我看到@ david-lawson參與這個答案時,它將成爲我一直在尋找的黃金!爲我省了很多麻煩 - 希望我早日找到它。爲什麼這不是在文檔?多謝你們。 – brianjlennon