3
RESTful登录失败:返回401或自定义响应
这是一个概念性的问题。 我有一个客户端(移动)应用程序,需要支持针对RESTful Web服务的登录操作。因为Web服务是RESTful的,所以这意味着客户端接受了用户的用户名/密码,并通过该服务验证了该用户名/密码,然后只是记得随所有后续请求一起发送该用户名/密码。 此Web服务中的所有其他响应均以JSON格式提供。 问题是,当我查询Web服务只是为了确定给定的用户名/密码是否有效时,Web服务是否应始终以JSON数据响应以告知其成功或不成功,还是应返回具有良好凭据和HTTP的HTTP 200 401错误的凭据。 我问的原因是,即使您只是在询问凭证是否有效,其他一些RESTful服务也使用401来提供不良凭证。但是,据我对401响应的理解,它们代表一种资源,如果没有有效的凭据,您不应访问这些资源。但是任何人都应该可以访问登录资源,因为登录资源的全部目的是告诉您您的凭据是否有效。 换句话说,在我看来,这样的请求: myservice.com/this/is/a/user/action 如果提供了错误的凭据,则应返回401。但是这样的请求: myservice.com/are/these/credentials/valid 永远不要返回401,因为该特定的URL(请求)是使用有效凭据或不使用有效凭据进行授权的。 我想听一听,对此有一些合理的看法。处理此问题的标准方法是什么?逻辑上适当的处理方法是什么?