使用 REST 的环回电子邮件验证(在哪里配置了必需的 verifyOptions)

Loopback email verification using REST(where is the required verifyOptions configured)

在环回 api 资源管理器 (localhost:3000/explorer) 中有一个端点 {POST /users/{id}/verify} 我认为它可以用来发送验证邮件。在描述中指出

"Trigger user's identity verification with configured verifyOptions"

我很想知道where/how这个verifyOptions是如何配置的。 提前致谢

正如 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'
      });
    });
  });

此 link 还展示了如何配置此路由:

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

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

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

这个 link 也可以帮助您查看此过程的示例:

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