无法通过CouchBase同步网关管理REST API

时间:2016-03-18 12:33:43

标签: couchbase couchbase-lite couchbase-sync-gateway

我正在使用Cookie Auth实现自定义身份验证。所以,我正在玩同步网关REST API来创建用户和会话。我可以成功创建用户但无法通过/ _session API创建会话。 以下是我遵循的步骤。

1。创建用户

POST /cookbook/_user/ HTTP/1.1
Host: localhost:4985
Content-Type: application/json
{
"name": "chef123",
"password": "1234"
}

2。获取用户

GET /cookbook/_user/ HTTP/1.1
Host: localhost:4985
Content-Type: application/json

Respone :["chef123"]

第3。创建会话

  POST /cookbook/_session HTTP/1.1
    Host: localhost:59840
    Content-Type: application/json
    {
        "name": "chef123",
        "ttl": 1800
    }

Expected:
{
    "cookie_name": "SyncGatewaySession", 
    "expires": "2014-11-07T16:42:11.675519255-08:00", 
    "session_id": "c2425fa7d734bc8c3f6c507854166bef56a5fbc6"
}

Instead received:
{"authentication_handlers":["default","cookie"],"ok":true,"userCtx":{"channels":{},"name":null}} 

任何人都可以解释为什么API会给出以下回复。

{" authentication_handlers":["默认""饼干&#34]," OK":真, " userCtx":{"频道":{},"名称":null}}

2 个答案:

答案 0 :(得分:0)

authentication_handlers是您用于创建会话的方法(它可能是内置的facebook或角色登录功能)。 userCtx提供了有关此用户的数据访问的有用信息,如:

  • channels:通过同步功能
  • 授予用户访问权限的频道
  • admin_channels:用户在配置文件中获得访问权限的渠道
  • roles:此用户的角色

有关详细信息,请参阅会话文档:http://developer.couchbase.com/documentation/mobile/1.2/develop/references/sync-gateway/admin-rest-api/session-admin/get-db-session-sessionid/index.html

要使用Sync Gateway设置身份验证,您可以查看这些博客:

答案 1 :(得分:0)

krishnan的注释中所述,解决此问题的方法是从URI中删除结尾的斜杠。我有同样的问题。

因此,而不是:POST /cookbook/_session/

使用:POST /cookbook/_session