0

是否有任何理由设计一个 HTTP REST API 来防止其客户端在更改用户的其他属性的同时更改用户的密码?例如,我有兴趣只允许他们一次更改所有内容。例如,如果用户想将他们的密码更改为“foobar”并将他们的名字更改为“Bob”,他们可以发送:

PATCH /user/myid HTTP/1.1
Content-Type: application/json

{"password":"foobar","first_name":"Bob"}

我已经看到一些 API 阻止客户端在更改其他属性的同时更改密码,但我看不出这种明显限制的原因。有什么理由这样做吗?

4

3 回答 3

2

如果他们提供原始密码,是的。

于 2013-11-14T19:55:02.113 回答
0

他们阻止这种情况的原因是他们使用电子邮件发送到与正在重置的密码关联的帐户,这使他们能够在没有原始密码的情况下重置密码。

于 2013-11-14T20:31:06.627 回答
0

需要类似的东西很简单oldpassword

{
    "oldpassword":"barfoo",
    "newpassword":"foobar",
    "first_name":"Bob",
    "email":"newemail@company.com",
    "id":"unique_identifier_that_never_changes"
}

然后验证 oldpassword 是否与当前密码匹配。

然后,如果您对旧/当前密码的验证成功,您可以更新passwordfirst_nameemail唯一值。id

于 2013-12-11T21:26:19.663 回答