RESTful - 重置密码

时间:2014-10-28 12:09:05

标签: api rest uri

我的问题类似于现有问题的以下内容

除非他们与我的不同之处在于我在请求重置时没有用户ID,只是他们的电子邮件地址。例如。我现有的API是:

GET /users
POST /users
GET /users/{userId}
PUT /users/{userId}
这些示例中的

userId是自动生成的ID。

现在我想建模一个可以请求密码重置电子邮件的API。此时userId将不知道。所以我想到了一些选择,并想知道是否有一个既定的最佳实践。

我的直觉是,这是最合适的方法。

PUT /users/password-reset/{emailAddress}

但是,我还可以期望首先进行用户搜索以获得正确的ID,但我感觉不必要的唠叨。

感谢任何反馈。

1 个答案:

答案 0 :(得分:1)

不确定最佳做法,但我当然希望在这里尝试RESTful风格的“Code-on-Demand”部分;以便在HTTP流量中看不到电子邮件ID。

在服务器端保留一组简单的公钥 - 私钥加密算法。并根据请求随机发送一个算法到“忘记密码”页面。使用此算法和公钥加密电子邮件ID和

PUT /users/password-reset/{encryptedEmailAddress}