1

我正在使用 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":["default","cookie"],"ok":true,"userCtx":{"channels":{},"name":null}}

4

2 回答 2

0

正如krishnan的评论中所提到的,这个问题的解决方案是从 URI 中删除尾部斜杠。我遇到过同样的问题。

所以,而不是:POST /cookbook/_session/

利用:POST /cookbook/_session

于 2020-04-11T17:54:24.533 回答
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 设置身份验证,您可以查看这些博客:

于 2016-03-20T15:57:47.440 回答