Couchdb认证/授权

Couchdb认证/授权,couchdb,Couchdb,在couchdb中,如果数据库是安全的,它将根据身份验证重定向配置设置重定向到/_utils/session.html 如果我的数据库很少,比如db1、db2等,那么我希望couchdb重定向到db1的/db1/logon.html和db2的/db2/logon.html,等等 是否可以根据正在访问的数据库将couchdb重定向到特定的登录文件?我认为唯一的方法是使用如下重写: {from: '/db1/*', to: '../../../db1/*'}, {from: '/db2/*', to

在couchdb中,如果数据库是安全的,它将根据身份验证重定向配置设置重定向到/_utils/session.html

如果我的数据库很少,比如db1、db2等,那么我希望couchdb重定向到db1的/db1/logon.html和db2的/db2/logon.html,等等


是否可以根据正在访问的数据库将couchdb重定向到特定的登录文件?

我认为唯一的方法是使用如下重写:

{from: '/db1/*', to: '../../../db1/*'},
{from: '/db2/*', to: '../../../db2/*'}
在主数据库上,将其称为从localhost:5984提供服务的main

futon中需要的配置如下所示

httpd secure_rewrites false
vhosts localhost:5984 /main/_design/edit/_rewrite
唯一的问题是,您必须关闭安全重写,这可能会破坏您的安全性


这是未经测试的,但应该非常接近。

我能想到的唯一方法是使用以下重写:

{from: '/db1/*', to: '../../../db1/*'},
{from: '/db2/*', to: '../../../db2/*'}
在主数据库上,将其称为从localhost:5984提供服务的main

futon中需要的配置如下所示

httpd secure_rewrites false
vhosts localhost:5984 /main/_design/edit/_rewrite
唯一的问题是,您必须关闭安全重写,这可能会破坏您的安全性


这是未测试的,但应该非常接近。

您可以传递?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."}

您可以传递?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."}