使用REST进行环回电子邮件验证(配置了所需的verifyOptions)

时间:2017-08-17 11:47:39

标签: node.js express loopbackjs

在loopback api explorer(localhost:3000 / explorer)中有一个端点{POST / users / {id} / verify},我认为它可用于发送验证邮件。在说明书中陈述了

  

"使用配置的verifyOptions"

触发用户的身份验证

我非常想知道这个verifyOptions的配置位置和方式。 提前致谢

1 个答案:

答案 0 :(得分:3)

正如user.js中的注释所说:( node_modules / loopback / common / models)

   * Verify a user's identity by sending them a confirmation message.
   * NOTE: Currently only email verification is supported
   *
   * ```js
   * var verifyOptions = {
   *   type: 'email',
   *   from: 'noreply@example.com'
   *   template: 'verify.ejs',
   *   redirect: '/',
   *   generateVerificationToken: function (user, options, cb) {
   *     cb('random-token');
   *   }
   * };

您应该创建此对象并使用此对象调用user.verify函数。您可以在afterRemote挂钩中执行此操作:

//send verification email after registration
  User.afterRemote('create', function(context, user, next) {
    var options = {
      type: 'email',
      to: user.email,
      from: 'noreply@loopback.com',
      subject: 'Thanks for registering.',
      template: path.resolve(__dirname, '../../server/views/verify.ejs'),
      redirect: '/verified',
      user: user
    };

    user.verify(options, function(err, response) {
      if (err) {
        User.deleteById(user.id);
        return next(err);
      }
      context.res.render('response', {
        title: 'Signed up successfully',
        content: 'Please check your email and click on the verification link ' +
            'before logging in.',
        redirectTo: '/',
        redirectToLinkText: 'Log in'
      });
    });
  });

此链接还显示了如何配置此路线:

https://apidocs.strongloop.com/loopback/#user-prototype-verify

此示例显示示例项目中的整个过程:

https://github.com/strongloop/loopback-example-user-management

此链接还可以帮助您查看此过程的示例:

https://github.com/strongloop/loopback/issues/590