Не удалось создать сеанс через REST API администратора шлюза синхронизации CouchBase.

Я работаю над внедрением пользовательской аутентификации с использованием 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":{"каналы":{},"name":null}}


person Dnavir    schedule 18.03.2016    source источник
comment
твоя проблема решена. У меня такая же проблема.   -  person krishnan    schedule 11.08.2016
comment
для проблемы было / в конце URL-адреса запроса. Я попробовал localhost:4985/db/_session вместо localhost:4985/db/_session/ и это сработало   -  person krishnan    schedule 11.08.2016


Ответы (2)


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, вы можете проверить эти блоги:

person jamiltz    schedule 20.03.2016

Как упоминалось в комментариях krishnan, решение этой проблемы заключается в удалении завершающей косой черты из URI. Я была такая же проблема.

Итак, вместо: POST /cookbook/_session/

Использование: POST /cookbook/_session

person JR Lawhorne    schedule 11.04.2020