我的问题类似于现有问题的以下内容
除非他们与我的不同之处在于我在请求重置时没有用户ID,只是他们的电子邮件地址。例如。我现有的API是:
GET /users
POST /users
GET /users/{userId}
PUT /users/{userId}
这些示例中的 userId
是自动生成的ID。
现在我想建模一个可以请求密码重置电子邮件的API。此时userId
将不知道。所以我想到了一些选择,并想知道是否有一个既定的最佳实践。
我的直觉是,这是最合适的方法。
PUT /users/password-reset/{emailAddress}
但是,我还可以期望首先进行用户搜索以获得正确的ID,但我感觉不必要的唠叨。
感谢任何反馈。
答案 0 :(得分:1)
不确定最佳做法,但我当然希望在这里尝试RESTful风格的“Code-on-Demand”部分;以便在HTTP流量中看不到电子邮件ID。
在服务器端保留一组简单的公钥 - 私钥加密算法。并根据请求随机发送一个算法到“忘记密码”页面。使用此算法和公钥加密电子邮件ID和
PUT /users/password-reset/{encryptedEmailAddress}