对CouchDB _session
端点的调用是否总是似乎返回200
HTTP状态代码,即使我传递的cookie不存在或错误?
在我的GET
请求标头中传递错误的Cookie或没有Cookie似乎总是返回:
{
"ok": true,
"userCtx": {
"name": null,
"roles": []
},
"info": {
"authentication_db": "_users",
"authentication_handlers": [
"cookie",
"default"
]
}
}
传递正确的cookie时,我收到的回复略有不同:
{
"ok": true,
"userCtx": {
"name": "jack",
"roles": []
},
"info": {
"authentication_db": "_users",
"authentication_handlers": [
"cookie",
"default"
],
"authenticated": "cookie"
}
}
这是标准行为吗?如果是,我应该依赖哪个密钥来假设成功的身份验证?它应该是res.userCtx.name
还是res.info.authenticated
?
答案 0 :(得分:0)
这似乎是标准行为,尽管文档中没有明确说明。
但是,您可以通过在查询中设置basic=true
来告诉CouchDB返回401响应:/_session?basic=true
。
它似乎表明它对基本身份验证很有用,但它也适用于经过cookie身份验证的用户。 (使用CouchDB 2.0.0测试)