在 json-rpc 网络服务上返回授权错误代码

Returning Auth Error code on a json-rpc web service

我正在实施基于 json-rpc 的 Web 服务。

对于身份验证,我使用 HTTP 基本身份验证。

根据 json-rpc 文档,此类错误没有错误代码。 https://www.jsonrpc.org/specification#error_object

我计划对无效授权案例做出如下回应,

{"jsonrpc": "2.0", "error": {"code": 401, "message": "Invalid Authentication"}, "id": null}

但我觉得这不是一个正确的实现方式。从 -32768 到 -32000 定义的所有 json-rpc 错误代码。代码 401 不在此范围内(因为它是一个 http 状态代码)。但是在

范围内也没有适合此类错误的代码

此类实施的最佳做法是什么。

根据 json-rpc 文档:

从-32768 到-32000 的错误代码保留给pre-defined 错误。此范围内的任何代码都保留供将来使用

以及 -32000-32099 的代码保留给 implementation-defined server-errors.

所以我决定使用 -32001 来处理身份验证错误。并且 -32002 用于授权错误。

https://www.jsonrpc.org/specification#error_object