我正在使用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}}
答案 0 :(得分:0)
authentication_handlers
是您用于创建会话的方法(它可能是内置的facebook或角色登录功能)。 userCtx
提供了有关此用户的数据访问的有用信息,如:
channels
:通过同步功能admin_channels
:用户在配置文件中获得访问权限的渠道roles
:此用户的角色要使用Sync Gateway设置身份验证,您可以查看这些博客:
答案 1 :(得分:0)
如krishnan的注释中所述,解决此问题的方法是从URI中删除结尾的斜杠。我有同样的问题。
因此,而不是:POST /cookbook/_session/
使用:POST /cookbook/_session