при запуске Hyperldger Query с многопользовательского сервера отдыха выдает ошибку «Указан неверный или посторонний параметр access_token» - PullRequest
0 голосов
/ 06 сентября 2018

Я использую многопользовательский сервер отдыха с включенной аутентификацией на основе ldap. Я могу успешно войти в систему, получить токен доступа и выполнить любое количество транзакций. Цепной код, запущенный для этой транзакции, также может запускать запросы, сгенерированные мной. Но проблема в том, что я не могу выполнить эти запросы напрямую из моего веб-браузера, используя тот же токен доступа. Я сталкиваюсь с этой ошибкой, которая говорит, что access_token является недопустимым или посторонним параметром при выполнении запроса. Но когда я пытаюсь выполнить запрос без маркера доступа, он выдает ошибку «AUTHORIZATION_REQUIRED», что, по моему мнению, нормально. Также эти запросы работают нормально на однопользовательском сервере отдыха.

Нужно ли выполнять что-то другое при выполнении запросов, используя многопользовательский сервер отдыха с токеном доступа, сгенерированным из LDAP.

"{" error ": {" statusCode ": 500," name ":" Error "," message ":" 2 UNKNOWN: error выполнение цепочки кодов: транзакция возвращена с ошибкой: ошибка: неверно или посторонний параметр access_token был указано " "код": 2, "метаданные": { "_ internal_repr": {}}, "деталь":" ошибка выполнение цепочки кодов: транзакция возвращена с ошибкой: ошибка: неверный или посторонний параметр access_token был указано "," стек ":" Ошибка: 2 НЕИЗВЕСТНО: ошибка при выполнении цепного кода: транзакция возвращена с ошибкой: ошибка: неверная или посторонняя Параметр access_token был указан \ n при новом createStatusError (/home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:64:15)\n в /home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:583:15"}}"

1 Ответ

0 голосов
/ 10 сентября 2018

На самом деле мы внесли некоторые изменения, чтобы заставить его работать на самом деле, проблема в том, как мы передавали токен доступа. В Документах Hyperledger есть 2 способа, которыми мы можем передать токен:

  1. curl -v http://localhost:3000/api/system/ping?access_token=xxxxx
  2. curl -v -H 'X-Access-Token: xxxxx' http://localhost:3000/api/system/ping

Я использовал 1-й метод для передачи токена доступа, и все мои транзакции работали нормально, но запрос не прошел, кажется, что токен доступа был передан запросу, и он не смог определить параметр. Поэтому я попробовал второй способ и смог выполнить запрос. Полагаю, на форумах Hyperleder должны быть упомянуты такие ограничения.

...