我正在创建一个与第三方应用程序集成的应用程序。
为此,登录用户提交用于第三方集成的 API 密钥。
如果他们提交的 API 密钥无效 - (并从第三方返回 401),我应该返回哪个 HTTP 响应?
从我的应用程序返回 401 听起来令人困惑,因为从前端的角度来看,不清楚它们是否未经我的应用程序或第三方应用程序验证。
我很想给它一个 400 - 就好像他们提交了一个带有无效电子邮件地址的表单等。
如果我必须选择一个代码,我可能会选择返回 403 Forbidden。
RFC 7231 §6.5.3对 403 代码的描述如下:
403(禁止)状态码表示服务器理解请求但拒绝授权。希望公开请求被禁止的原因的服务器可以在响应负载(如果有)中描述该原因。
如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应使用相同的凭据自动重复请求。客户端可以使用新的或不同的凭据重复请求。但是,由于与凭据无关的原因,可能会禁止请求。
希望“隐藏”当前存在的被禁止目标资源的源服务器可能会以 404(未找到)状态代码响应。
此状态代码通常用作通用的“身份验证失败”响应,并且不太可能触发任何特定的身份验证机制,例如 401 可以强制浏览器显示用户名/密码提示。身份验证失败的具体原因可以在响应正文中描述,可以是机器可读的形式(例如 JSON 或 XML),也可以是人类可读的文档(例如 HTML)。
Code 400 在这里并不是最糟糕的选择,但它相当通用。
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |