天天看点

java response 401_RESTful登录失败:返回401或自定义响应

这是一个概念性问题 .

我有一个客户端(移动)应用程序,需要支持针对RESTful Web服务的登录操作 . 由于Web服务是RESTful,这相当于客户端接受用户的用户名/密码,验证服务的用户名/密码,然后只记得发送该用户名/密码以及所有后续请求 .

此Web服务中的所有其他响应均以JSON格式提供 .

问题是,当我查询Web服务只是为了找出给定的用户名/密码是否有效时,Web服务是否总是以JSON数据响应,告诉我它成功或不成功,或者它应该返回HTTP 200的良好凭据和HTTP 401凭据不良凭证 .

我问的原因是,即使您只是询问凭据是否有效,其他一些RESTful服务也会使用401作为错误的凭据 . 但是,我对401响应的理解是,它们代表了一个没有有效凭据就无法访问的资源 . 但是登录资源应该对任何人都可以访问,因为登录资源的全部目的是告诉您凭据是否有效 .

换句话说,在我看来,请求如下:

myservice.com/this/is/a/user/action

如果提供了错误的凭据,则应返回401 . 但是请求如下:

myservice.com/are/these/credentials/valid

永远不应该返回401,因为该特定URL(请求)在有或没有有效凭据的情况下被授权 .

我想在这方面听到一些合理的意见 . 处理这个问题的标准方法是什么,这是处理逻辑上合适的标准方法吗?