相关疑难解决方法(0)

令牌已过期 - JSON REST API - 错误代码

我有一个JSON REST API.有一个握手会给你一个有效15分钟的令牌.你在15分钟内完成的所有电话都可以正常工作.15分钟后,我返回一个错误对象(包括代码,消息,成功=假)但我也想知道我应该返回什么HTTP错误代码?并将使用HTTP错误代码搞乱某些客户端?(HTML5,iPhone,Android).在这种情况下,什么是最佳做法?

rest web-services api-design

70
推荐指数
3
解决办法
5万
查看次数

是否可以为不存在的资源而不是404返回HTTP 401以防止信息泄露?

受到思考的启发,同时查看" 资源可用但由于权限无法访问时纠正HTTP状态代码 "这一问题,我将使用相同的方案来说明我的假设问题.

想象一下,我正在建立一个拼车网络服务.

假设如下

GET /api/persons/angela/location
Run Code Online (Sandbox Code Playgroud)

检索用户"angela"的当前位置.只有angela本人和可能会选择她的司机应该能够知道她的位置,因此如果请求未通过相应用户的身份验证,则会返回401 Unauthorized响应.

还要考虑请求

GET /api/persons/john/location
Run Code Online (Sandbox Code Playgroud)

当没有用户名为john时已在系统中注册.没有john资源,更不用说john位置的资源了,所以这显然会返回404 Not Found.或者是吗?

如果我不想透露john是否在系统中注册了怎么办?

(也许用户名来自一小部分大学登录,校园内有一个非常激进的自行车小组,即使你在拼车,也会对车辆的使用情况非常暗淡?他们可以为每个用户提出URL请求,如果他们收到的是401而不是404,则推断出该用户是汽车用户)

为此请求返回401 Unauthorized是否有意义,即使资源不存在且服务器返回200的请求中没有可能提供的凭据集?

security rest http http-status-codes

35
推荐指数
2
解决办法
5251
查看次数