gpt4 book ai didi

api - 我应该向没有足够访问权限的 REST API 用户返回 401 或 405 响应代码吗?

转载 作者:可可西里 更新时间:2023-11-01 15:06:37 26 4
gpt4 key购买 nike

我正在开发一个 API,它也将有一个身份验证/授权组件。

任何人,无论身份验证状态如何,都可以写入 (POST),但取决于您是未经身份验证、作为普通用户进行身份验证还是作为管理员进行身份验证,以及您尝试访问的资源,我将对 GET、DELETE 和 PUT 返回不同的响应。

我正在尝试为未经过身份验证和/或授权的用户找出最合适的响应代码。

牢记http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html :

Unauthorized -> 401

Forbidden -> 403

Method Not Allowed -> 405

让我们用一个具体的例子:

  • John Doe 未经身份验证,在删除时他应该收到 401 还是 405?
  • Amy 已通过身份验证但未获得授权,在 DELETE 时她应该收到 403 还是 405?

(请记住,即使 John 和 Amy 被禁止或未经授权,这并不意味着他们无法使用不同的 HTTP VERB 访问相同的资源。)

谢谢。

最佳答案

在这种情况下,我认为提供一些例子来说明是有用的:

  • 未经身份验证 + 支持的方法 = 401
  • 未经身份验证 + 不受支持的方法 = 405
  • 已验证 + 已授权 + 支持的方法 = 2xx
  • 已验证 + 已授权 + 不支持的方法 = 405
  • 已验证 + 未授权 + 支持的方法 = 403
  • 已验证 + 未授权 + 不支持的方法 = 405

换句话说,从程序的角度来看:

  1. 检查是否支持方法。如果不是:405
  2. 如果支持,请检查用户是否已通过身份验证。如果不是:401
  3. 如果通过身份验证,请检查用户是否获得授权。如果不是:403
  4. 如果授权:2xx

编辑: 我偶然发现了这张图表,并认为它可能对其他可能偶然发现这篇文章的人有用。点击放大。

enter image description here

原创 here .

关于api - 我应该向没有足够访问权限的 REST API 用户返回 401 或 405 响应代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11200570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com