如何更改Loopback.js中通过User.verify(...)发送的电子邮件验证的文本

TWr*_*ght 4 strongloop loopbackjs

我很欣赏Loopback.js开箱即用的所有需求,但是一个可以使用灵活性的领域是在用户创建时发送的电子邮件验证. 这个GitHub项目有助于说明这一功能 - 但是没有在SO或Google网上论坛或文档中(是的,我先在那里查看),它是否显示了如何更改电子邮件验证的实际文本.

我在"verify.ejs"中实现了完全相同的代码(如前面提到的GitHub项目中所见)...即:

<%= text %>
Run Code Online (Sandbox Code Playgroud)

现在插入的文字说:

请在网络浏览器中打开此链接以验证您的电子邮件:

我想将此用户互动称为"帐户激活" - 而不是"电子邮件验证".该项目有自己的要求,迫使我实现语义的变化.先感谢您.

TWr*_*ght 15

(你知道开源摇滚有很多原因......我现在最重要的原因是自编代码.)

我查看了User.verify(...)的来源,发现可以传入的选项比记录的更广泛.

在以下代码片段中(来自Loopback的用户模型),您将看到我的意思:

options.host = options.host || (app && app.get('host')) || 'localhost';
    options.port = options.port || (app && app.get('port')) || 3000;

// ### (later) ### //

options.text = options.text || 'Please verify your email by opening this link in a web browser:\n\t{href}';

options.text = options.text.replace('{href}', options.verifyHref);
Run Code Online (Sandbox Code Playgroud)

因此,简而言之,在传递给User.verify()的options对象中设置这些参数:

var options = { 
  host: 'http://some.domain.com',
  port: 5000,
  text: 'Please activate your account by clicking on this link or copying and pasting it in a new browser window:\n\t{href}'
}
Run Code Online (Sandbox Code Playgroud)

User.verify(..)的源代码见于:https://github.com/strongloop/loopback/blob/master/common/models/user.js