【问题标题】:Using passport-http on Hyperledger composer REST API在 Hyperledger composer REST API 上使用 passport-http
【发布时间】:2017-08-17 22:57:25
【问题描述】:

我想知道是否可以使用 passport-http 来保护由 composer-rest-server 生成的 Hyperledger Composer 的 REST API,export COMPOSER_PROVIDERS='{}' strong> 配置。

这个想法是使用之前生成的身份并分配给 composer 的参与者来验证 API 上的 GET 和 POST 请求。

如果可能,如何将 userID 和 userSecret 作为特殊的 http 标头在正文中或作为简单的基本身份验证标头传递?

【问题讨论】:

  • 您能否让passport-http 策略在composer-rest-server 上发挥作用?

标签: rest api hyperledger-fabric hyperledger-composer


【解决方案1】:

我没试过,但应该可以。 Composer REST 服务器使用开源的Passport authentication 中间件,这是一个配置问题。可以选择多种 Passport 策略,允许 REST 服务器的客户端选择首选的身份验证机制。

passport-http的攻略来了->https://github.com/jaredhanson/passport-http

你可以试试这样的:

导出 COMPOSER_PROVIDERS='{ “基本的”: { “提供者”:“基本”, “模块”:“护照-http”, "clientID": "REPLACE_WITH_CLIENT_ID", "clientSecret": "REPLACE_WITH_CLIENT_SECRET", "authPath": "/auth/local", "callbackURL": "/auth/local/callback", “成功重定向”:“/”, “失败重定向”:“/登录” } }'

我假设您知道如何配置您的 passport-http 策略。 并查看RESTful Node.js Application with passport-http - 并查看一个使用 REST Endpoints 的应用程序的示例(接近尾声)。

【讨论】:

  • 我在尝试导出时遇到错误,我认为缺少有关所使用策略(基本或摘要)的字段。非常感谢您的回答。
  • 错误:TypeError: AuthStrategy is not a constructor at PassportConfigurator.configureProvider (/home/fabric/.nvm/versions/node/v6.11.2/lib/node_modules/composer-rest-server/node_modules /loopback-component-passport/lib/passport-configurator.js:280:18) 在 Promise.then (/home/fabric/.nvm/versions/node/v6.11.2/lib/node_modules/composer-rest-server/ server/server.js:131:38) 在 process._tickCallback (internal/process/next_tick.js:109:7)
  • 好的,现在你的问题是配置策略。我提供的答案只是一个模板——要么您没有正确指定策略,要么缺少策略。例如。如此处所示 -> loopback.io/doc/en/lb2/Configuring-providers.json.html - 有些已指定“策略”,也许您需要指定?
  • 是的,我确定问题出在策略的配置上。我根据他们的示例使用 providers.json 文件尝试了 passport-google-oauth 策略,一切正常。我唯一的问题是 passport-http 一个,因为我找不到任何可以工作的 providers.json 文件,甚至不知道这个文件是否受支持。
  • 遇到同样的问题TypeError: AuthStrategy is not a constructor at PassportConfigurator.configureProvider (/usr/local/lib/node_modules/composer-rest-server/node_modules/loopback-component-passport/lib/passport-configurator.js:439:18) at Promise.then (/usr/local/lib/node_modules/composer-rest-server/server/server.js:147:38) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
相关资源
最近更新 更多