在 Loopback 中实现 request-password-reset 的推荐方法
recommended way to implement request-password-reset in Loopback
要在环回中实现密码重置请求(发送电子邮件给用户重置link),我们需要handle the event resetPasswordRequest
。
下面是一个可能的实现
Client.on('resetPasswordRequest', function(info) {
var options = {
type: 'email',
to: info.email,
from: '....',
...
};
Client.email.send(options, function(err, res) {
if (err) console.log(err);
});
});
使用这种方法,如果发生错误,它会简单地记录到控制台。抛出一个不会被处理的错误也不是一个更好的解决方案。
为什么文档中没有提到使用 afterRemoteHook
添加此逻辑甚至创建新的自定义端点?这两种解决方案似乎都更擅长处理错误。
我认为您的代码基于 example application,对吗?如果是这样,则此方法由示例应用程序的开发人员使用,但不是必需的实现。您可以使用任何其他合适的解决方案,其中之一就是您在问题中提到的。
至于发射事件 - 它有它的优势。您发出事件并立即发送对请求的响应。所以客户端应用程序不会等到电子邮件发送部分发送电子邮件——这可能需要几秒到几十秒。
您可以实现电子邮件发送日志,并在用户等待密码重置电子邮件时向其发出另一个请求,以便在发生任何错误时通知他。
从另一方面来说,这只是示例,在生产中使用时不需要实施。
要在环回中实现密码重置请求(发送电子邮件给用户重置link),我们需要handle the event resetPasswordRequest
。
下面是一个可能的实现
Client.on('resetPasswordRequest', function(info) {
var options = {
type: 'email',
to: info.email,
from: '....',
...
};
Client.email.send(options, function(err, res) {
if (err) console.log(err);
});
});
使用这种方法,如果发生错误,它会简单地记录到控制台。抛出一个不会被处理的错误也不是一个更好的解决方案。
为什么文档中没有提到使用 afterRemoteHook
添加此逻辑甚至创建新的自定义端点?这两种解决方案似乎都更擅长处理错误。
我认为您的代码基于 example application,对吗?如果是这样,则此方法由示例应用程序的开发人员使用,但不是必需的实现。您可以使用任何其他合适的解决方案,其中之一就是您在问题中提到的。
至于发射事件 - 它有它的优势。您发出事件并立即发送对请求的响应。所以客户端应用程序不会等到电子邮件发送部分发送电子邮件——这可能需要几秒到几十秒。
您可以实现电子邮件发送日志,并在用户等待密码重置电子邮件时向其发出另一个请求,以便在发生任何错误时通知他。
从另一方面来说,这只是示例,在生产中使用时不需要实施。