我正在尝试开发一个REST API web服务。我有一个关于如何处理用户激活电子邮件的问题。目前,API服务处理电子邮件发送。
以下是我目前拥有的流程:
- 用户通过客户端应用程序注册
- 客户端应用程序POST到API服务
- API服务验证并将用户添加到数据库中
- API服务发送给用户一个激活链接
- 用户点击激活链接,将进入客户端应用程序激活页面
- 客户端应用程序激活页面POST到API服务
- 完成
这里是我目前看到的问题:
由于API服务目前正在发送电子邮件,因此客户端应用程序无法控制电子邮件的外观和感觉。而且电子邮件中可能有应该指向客户端应用程序的URL。
另一种选择是,代替API服务发送激活电子邮件,它将返回激活密钥给客户端应用程序。然后,客户端应用程序将能够向用户发送激活电子邮件。
我看到这种策略存在两个问题:
- 安全性,因为激活密钥现在暴露给客户端应用程序。
- 不DRY,因为每个客户端都可能负责电子邮件发送。
您认为处理这个问题的最佳方法是什么?
我希望允许客户端应用程序定制他们的电子邮件,并包括特定于客户端的URL(激活页面)。