在couchdb中,如果数据库受到保护,它会根据“authentication_redirect”配置设置重定向到“/_utils/session.html”。
如果我有几个像db1,db2等数据库我想要的是couchdb重定向到db1&的/db1/logon.html /db2/logon.html用于db2等。
是否可以根据正在访问的数据库将couchdb重定向到特定的登录文件?
答案 0 :(得分:7)
您可以传递?fail =参数。告诉couchdb在哪里发送未通过身份验证的用户。被褥像这样使用它;
成功的身份验证;
curl -sv 'localhost:5984/_session?next=/foo&fail=/bar' -d 'name=foo&password=bar'
< HTTP/1.1 302 Moved Temporarily
< Location: http://localhost:5984/foo
{"ok":true,"name":null,"roles":["_admin"]}
身份验证失败;
curl -Haccept:text/html -sv 'localhost:5984/_session?next=/foo&fail=/bar' -d 'name=foo&password=baz'
< HTTP/1.1 302 Moved Temporarily
< Location: http://localhost:5984/bar
{"error":"unauthorized","reason":"Name or password is incorrect."}
答案 1 :(得分:1)
我能想到的唯一方法就是使用重写:
{from: '/db1/*', to: '../../../db1/*'},
{from: '/db2/*', to: '../../../db2/*'}
在主数据库调用上,它主要从localhost:5984提供。
在蒲团中需要的配置如下
httpd secure_rewrites false
vhosts localhost:5984 /main/_design/edit/_rewrite
唯一的问题是你必须关闭secure_rewrites,这可能会破坏你的安全性。
这是未经测试的,但应该非常接近。