我正在开发一个使用 Couchbase Lite 和 Sync Gateway 的 Android 应用程序。我正在使用基本 HTTP 身份验证对同步网关进行身份验证。
有没有办法在不触发复制的情况下验证用户的凭据?我相信我可以拥有一个使用 Admin REST API 来尝试创建会话的前端 Web 服务,但我更愿意避免这种情况并让客户端直接与同步网关对话。
我正在开发一个使用 Couchbase Lite 和 Sync Gateway 的 Android 应用程序。我正在使用基本 HTTP 身份验证对同步网关进行身份验证。
有没有办法在不触发复制的情况下验证用户的凭据?我相信我可以拥有一个使用 Admin REST API 来尝试创建会话的前端 Web 服务,但我更愿意避免这种情况并让客户端直接与同步网关对话。
经过一些测试,我发现在非管理员端口上有一个可用的会话 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,服务器会立即关闭连接而不返回任何内容。