【发布时间】:2014-07-10 23:40:41
【问题描述】:
我正在尝试开发 REST API 网络服务。我有一个关于如何处理用户激活电子邮件的问题。目前,API 服务处理电子邮件发送。
这是我目前的流程:
- 用户通过客户端应用注册
- 客户端应用程序 POST 到 API 服务
- API 服务验证用户并将其添加到数据库中
- API 服务向用户发送激活链接
- 用户点击激活链接,将转到客户端应用程序激活页面
- 客户端应用程序激活页面 POST 到 API 服务
- 完成
这是我目前看到问题的地方:
由于 API 服务当前正在发送电子邮件,因此客户端应用程序无法控制电子邮件的外观。并且电子邮件中可能存在应该指向客户端应用程序的 URL。
另一个选项是 API 服务不发送激活电子邮件,而是将激活密钥返回给客户端应用程序。然后,客户端应用程序将能够向用户发送激活电子邮件。
我发现此策略存在两个问题:
- 安全性,因为激活密钥现在向客户端应用程序公开。
- 不是 DRY,因为每个客户都可能负责发送电子邮件。
您认为最好的处理方法是什么?
我希望允许客户端应用程序自定义他们的电子邮件,以及包含特定于客户端的 URL(激活页面)。
【问题讨论】:
-
为什么客户端不能在用户注册的同时发送邮件的化妆品信息?另外,您使用什么平台,客户端可以发送电子邮件?
-
这是一个 Rest API 服务,所以你是说应该接受一个带有 html/css 的 json 对象来创建电子邮件?
-
您对“外观”的要求不是很具体。如果您希望客户端控制有关电子邮件的任何内容,为什么不将其作为 json 发送到服务器?
-
是的,我就是这个意思。当客户端应用程序发布注册详细信息时,将 html/css 作为 json 发送回
-
我认为他们都不应该发送电子邮件,当您将用户添加到 api 端的数据库时,您可以使用消息队列(如 rabbitmq 或 zeromq)您应该将消息添加到包含必要数据的队列中,并且消费者应该发送电子邮件。您可以使用消息中的类型标志来处理项目的所有电子邮件需求
标签: api rest activation