用户认证响应

时间:2015-11-04 11:39:18

标签: java spring http-status-code-401

我有一个用户身份验证API,它返回一个包含一些数据的对象,包括状态代码,例如。 200.即使凭据不正确,我发送200状态消息但响应对象的状态字段具有状态401和消息"不正确的凭证"。所以我的问题是,哪个响应是正确的?即使证书不正确,我发送200状态消息,然后在响应对象内我必须再次检查凭据是否正确,或者第二,如果凭证不正确,我发送状态401和响应对象

2 个答案:

答案 0 :(得分:0)

我认为最好在HTTP标头中返回它。通过这种方式,客户端可以以更简单的方式知道错误。最后它更直接。

答案 1 :(得分:0)

可取的方法是返回标题中的http状态和代码。这样,用户可以使用本机方法来响应响应。如果您的服务中出现意外错误并且您无法从中形成漂亮的响应对象,则用户仍然能够处理它,因为响应将具有正确的HTTP状态代码。如果用户总是希望您的API返回一个对象,那么他/她在这种情况下遇到麻烦。当然,你可以告诉他们考虑到这一点,但是用户必须实现额外的逻辑来处理两种响应。

可是:

你可以像我一样做:让用户选择!

我在url中放了一个变量,告诉服务是否使用正确的代码返回http响应。 网址看起来像这样:

/some_path/{real_http_code}/some_path_or_data

{real_http_code}是真/假文本。如果确实如此,我们的服务知道使用正确的HTTP状态代码返回响应。如果为false,则服务将始终返回200 OK响应,并且如果出现问题,用户必须检查响应。 所以,网址看起来像这样:

/some_path/true/some_path_or_data

起起落落:

+使用户可以自由选择

- 必须在服务中实现附加逻辑