virtualhost - 设置 cloudflare 虚拟主机后 Cloudant 基本身份验证不起作用
问题描述
我使用 Cloudant 作为我的数据库,并且我已经正确地将它设置为 Cloudflare 作为虚拟主机,所以我的数据库没有像这样随机生成子域:
f8b3f1f4-b695-4806-someting-fre-bluemix.cloudant.com
我把它放在我的自定义域下,如下所示:
db.example.com
我已经正确设置了 SSL 证书,一切都非常好。
现在的问题是,在自定义域上,我无法使用随机生成的域上使用的用户名和密码对我的数据库进行身份验证(使用基本身份验证)。
在自定义域(db.example.com)上,我收到此错误:
{
"error": "unauthorized",
"reason": "Name or password is incorrect."
}
而在原始域 (f8b3f1f4-b695-4806-someting-fre-bluemix.cloudant.com) 上,基本身份验证工作得很好。
解决方案
Cloudant auth 需要某种方法来确定您的用户名,通常是通过使用子域来完成的,该子域也是您的帐户名和登录名。通常,这是由知道子域的负载均衡器添加的,但是在使用虚拟主机时您可能必须手动添加它(我从未尝试过)。尝试在您的请求中添加标题“X-Cloudant-User: f8b3f1f4-b695-4806-someting-fre-bluemix”(或任何您的帐户),看看是否有任何改变。
推荐阅读
- makefile - Make:避免在多个 Makefile 中具有相同目标的问题
- sql - 使用日期和时间部分获取最新记录,聚合函数出错
- python - Python 日志记录:使用文件模式“w”时覆盖而不是附加
- flutter - AnimatedContainer 不适用于 ListView
- django - 无法使用带有 csrf 令牌的改造从 android 成功调用
- laravel - 验证与复选框相关的时间是否被选中?
- google-cloud-ml - 如何使 AI Platform 部署的模型可公开访问?
- android - Unity 控制台提示安装成功,但在移动设备上找不到游戏
- python - 如何使用 Python 获取 Selenium Chromedriver 的 ID?
- python - 如何通过包含特定python版本的docker从linux运行python代码