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

时间:2015-10-24 04:36:31

标签: loopbackjs strongloop

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

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

<%= text %>

现在插入的文字说:

  

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

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

3 个答案:

答案 0 :(得分: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);

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

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}'
}

https://github.com/strongloop/loopback/blob/master/common/models/user.js

找到User.verify(..)的源代码

答案 1 :(得分:1)

tx,这对我有所帮助。

要展开,验证链接选项为

options.verifyHref = options.verifyHref ||
      options.protocol +
      '://' +
      options.host +
      displayPort +
      options.restApiRoot +
      userModel.http.path +
      userModel.sharedClass.find('confirm', true).http.path +
      '?uid=' +
      options.user.id +
      '&redirect=' +
      options.redirect;

所以,那里的所有选项都可以自定义(特别是上面我没有找到options.restApiRoot)。 或者,只需自己设置options.verifyHref,只有那一个将作为验证链接发送

答案 2 :(得分:0)

如果你只想要href:

var options = {
    text: '{href}'
}