CouchDB Fauxton 登录不适用于 DigitalOcean Docker APP

CouchDB Fauxton login not working on DigitalOcean Docker APP

我已经部署了原版 CouchDB Docker container, tag "latest" on DigitalOcean's App Platform

我使用环境变量设置了管理员用户,我成功地卷曲到 https 端口 443 上的数据库服务器,而不是原始安装的 5984。然后我创建了系统数据库,如 docker 文档中所述。

Fauxton UI 的初始加载有效(使用 _utils),但在 UI 级别登录失败。登录表单提交带有 name/password 的表单,CouchDB 回复为:

{
  "ok":true,
  "name":"couchadmin",
  "roles":[
             "_admin"
          ] 
}

吐司出现“您已登录”,AuthSession cookie 已设置,但 Fauxton 不让我访问任何功能,只是再次重定向到登录页面。

我错过了什么?

更新

再次查看网络选项卡,还有更多内容:

{"ok":true,"userCtx":{"name":null,"roles":[]},"info":{"authentication_handlers":["cookie","default"]}}

姓名和角色是 null/empty。然后 GET 重复最后一次,结果相同

** 更新 2 **

当我查询 _session?basic=true 时,我得到了正确的响应:

{
  ok: true,
  userCtx: {
    name: "couchadmin",
    roles: [
      "_admin",
      "user",
      "admin"
    ]
  },
  info: {
    authentication_handlers: [
      "cookie",
      "default"
    ],
    authenticated: "cookie"
  }
}

看起来 session 饼干在生产线的某个地方被吃掉了。

在您的第一个 POST _SESSION 中,您能否检查一下您得到的响应 headers 以及它是否包含 session cookie?

事实证明,cookie 是在 DigitalOcean App 平台内部的某个地方被吃掉的。我重新部署了一个 CouchDB Droplet 而不是一个应用程序,一切都按预期工作。 这也解决了(尚未解决)存储持久性的需求。应用程序是表皮的,而液滴保留数据(仍然需要备份)并附加块存储。