无法访问 CouchDB 实例:返回 401 未授权



我无法使用curl或任何第三方CouchDB客户端库访问我的couchdb实例。

它返回:401 未经授权!

我正在使用网址

https://instance.smileupps.com/

使用 curl 这是我输入的命令行:

curl https://instance.smileupps.com/

"401 未经授权"表示您的实例不在管理员队伍中(您已经指定了至少一个管理员凭证对(。

在这种情况下,您应该使用 curl 或任何第三方客户端库发送经过身份验证的请求

1(简单的方法(不适用于带有特殊字符的凭据(

您可以通过在主机名前面加上用户名:密码来使用修改后的 url,例如:

https://my_username:my_password@instance.smileupps.com

这几乎总是工作正常..

2(棘手但更安全的方式(更可靠,更安全(

如果 1( 不起作用,可能是您在用户名或密码中使用了特殊字符,并且 curl 或 couchdb 库无法在发送请求之前正确解析 url。

在这种情况下,您可以通过发送 http 基本授权标头来执行身份验证...这是一个标题,如下所示:

授权: Basic bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=

其中"bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ="是"my_username:my_password"的base64_encode。可以使用 base64 联机编码器服务对自己的凭据进行编码。

所以 curl 命令行将变成这样:

> curl -v -H "Authorization: Basic bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=" -H
> "Content-type:application/json" -X GET
> https://instance.smileupps.com/mydatabasename

如果您改用第三方库,则应在其文档中找到添加自定义标头的方法,并添加以下内容:

授权: Basic bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=

最新更新