如何解决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 举报,一经查实,本站将立刻删除。