我正在开发一个 API,它也将具有身份验证/授权组件。
任何人,无论身份验证状态如何,都可以写入(POST),但取决于您是未经身份验证、作为普通用户身份验证还是作为管理员身份验证以及您尝试访问的资源我将返回不同的响应获取、删除和放置。
我正在尝试为未经过身份验证和/或授权的用户找出最合适的响应代码。
请记住http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
未经授权-> 401
禁止 -> 403
方法不允许 -> 405
让我们使用一个具体的例子:
- John Doe 未经身份验证,在 DELETE 上他应该收到 401 还是 405?
- Amy 已通过身份验证但未授权,在 DELETE 时她应该收到 403 还是 405?
(请记住,即使 John 和 Amy 被禁止或未经授权,这并不意味着他们无法使用不同的 HTTP VERB 访问相同的资源。)
谢谢。