javascript - 第三方应用程序产生错误时的响应代码应该是什么?

标签 javascript http backend convention

我构建了一个 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/

相关文章:

现有数据的 REST 响应代码

git - _netrc/.netrc 替代 cURL

c# - HttpClient - 如何确定服务器是否更快关闭?

java - 如何从一个进程返回到一个前端后端进程?

.net - 有哪些方法可以从非托管代码生成 MSIL

javascript - Bootstrap-4 模态

javascript - 带有 id 的 CreateElement?

javascript - 运行网站上显示的计数器

javascript - 谷歌+登录错误。阻止了来源为 "http://localhost"的帧

javascript - 将模板添加为 innerHTML 时 Angular 2 绑定(bind)/事件不起作用