我构建了一个 Web 应用程序,它基本上要求用户使用表单提供凭据(对于随机的第 3 方服务,知道哪个并不重要)。
一旦用户用第 3 方服务应用程序 token 填写表单,带有 token 的请求将发送到应用程序后端,后端获取 token 并向第 3 方服务发送请求以检查 token 是否有效。
此时,第 3 方服务使用 200 - {randomObject: object}
或 401 - Unauthorized
向后端返回响应。
所以这是我的问题:如果第 3 方服务返回 401,后端应该返回 200 - false
还是 401 - Unauthorized
?
我和我的同事一直在争论这个问题。
我的观点是,对应用程序后端的访问已获得授权且参数正确(请求中存在 token ),因此响应应为 200,但响应内容应指示 token 是否有效。
他的观点是,由于 token 无效(正如第 3 方服务告诉后端的那样),后端应返回 401 - Unauthorized
。
为了让我们清楚一点,我知道两种情况下的结果是相同的,事实上这个功能已经起作用了,我只是想知道关于这个具体问题是否有某种约定。
谢谢
最佳答案
我会选择 400 或 401。
401 可能会产生误导,因为对您的 API 的访问并非未经授权。 (特别是如果你的 api 也需要身份验证)
另一方面400可能是最好的:
The 400 (Bad Request) status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error
关于javascript - 第三方应用程序产生错误时的响应代码应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40761386/