You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian上CouchDB 2.1.1 Cookie认证失效问题求助

这个问题我之前也碰到过,核心原因是当你把chttpd.require_valid_user设为true时,CouchDB会强制所有请求都必须经过认证——包括用来获取Cookie的POST /_session登录请求,这就陷入了"要登录先认证,要认证先登录"的死循环。

解决步骤:

  1. 允许匿名访问登录端点
    打开CouchDB的配置文件(通常是/etc/couchdb/local.ini),找到[couch_httpd_auth]段,添加或修改以下配置:

    [couch_httpd_auth]
    allow_public_api = true
    

    这个配置会开放CouchDB的公共API端点(包含/_session)给匿名用户,让你能正常提交登录请求获取Cookie。

  2. 确保Cookie签名密钥已配置
    Cookie认证需要密钥来签名生成的Cookie,如果你还没设置过,同样在[couch_httpd_auth]段添加:

    secret = 你的随机密钥字符串
    

    可以用openssl rand -base64 32生成一个安全的随机字符串替换上述内容。

  3. 重启CouchDB使配置生效

    sudo systemctl restart couchdb
    

验证测试

执行你之前的curl命令:

curl http://localhost:5984/_session -H 'Content-Type:application/x-www-form-urlencoded' -d 'name=foo&password=XXXX'

现在应该能正常返回{"ok":true,"name":"foo","roles":[]},响应头里也会带有Set-Cookie字段,后续就可以用这个Cookie进行认证访问了。

内容的提问来源于stack exchange,提问作者ceremcem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:51:08