0

我正在开发一个使用 Couchbase Lite 和 Sync Gateway 的 Android 应用程序。我正在使用基本 HTTP 身份验证对同步网关进行身份验证。

有没有办法在不触发复制的情况下验证用户的凭据?我相信我可以拥有一个使用 Admin REST API 来尝试创建会话的前端 Web 服务,但我更愿意避免这种情况并让客户端直接与同步网关对话。

4

1 回答 1

1

经过一些测试,我发现在非管理员端口上有一个可用的会话 API,用于测试帐户:

curl -H "Content-type: application/json" -X POST \   
http://localhost:4984/mydatabase/_session --data \
"{\"name\":\"myuserid\",\"password\":\"mypassword\"}"

这不会生成会话,但会验证用户凭据,并返回以下内容:

{
    "authentication_handlers":["default","cookie"],
    "ok":true,
    "userCtx":{"channels":{"!":1,"channel1":1,"channel2":1},"name":"myuserid"}
}

如果密码不正确,它会返回:

{"error":"Unauthorized","reason":"Invalid login"}

对于无法识别的用户 ID,服务器会立即关闭连接而不返回任何内容。

于 2015-06-17T14:23:08.260 回答