微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CouchDB Fauxton 登录不适用于 DigitalOcean Docker APP

如何解决CouchDB Fauxton 登录不适用于 DigitalOcean Docker APP

我已经在 DigitalOcean 的 CouchDB Docker container 上部署了原版 App Platform标记为“最新”。

我使用环境变量设置了 admin 用户,并且我成功地在 https 端口 443 上 curl 到数据库服务器,而不是 5984 作为原始安装。然后我按照 docker 文档中的说明创建了系统数据库

Fauxton UI 的初始加载工作(使用 _utils),但是在 UI 级别登录失败。登录表单提交带有名称/密码的表单,CouchDB 回复

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

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

我想念什么?

更新

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

  • POST 到 _session,结果如上
  • GET tp _session,结果:
{"ok":true,"userCtx":{"name":null,"roles":[]},"info":{"authentication_handlers":["cookie","default"]}}

名称和角色为空/空。然后 GET 以相同的结果重复最后一次

** 更新 2 **

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

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

解决方法

看起来会话 cookie 被吃掉了。

在您对 _SESSION 的第一次 POST 中,您能检查一下您得到了哪些响应标头以及它是否包含会话 cookie?

,

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。