【问题标题】:401 Authorization Required integrating Hyperledger Composer REST API from Webapp401 Authorization Required 从 Webapp 集成 Hyperledger Composer REST API
【发布时间】:2017-08-18 12:53:11
【问题描述】:

简介

点击此链接https://hyperledger.github.io/composer/integrating/enabling-rest-authentication.html,我有一个以安全模式运行的超级账本环境

如果我按照文档中指定的方式进行身份验证(直接从浏览器点击http://mydomain:3000/auth/github)然后从http://mydomain:3000/explorer 访问Rest API 并可以授权为各种参与者(即,颁发身份并将其添加到钱包中并一次将其设置为默认值),并且可以根据 .acl 文件查看资产。

问题

但是当我开始从我的网络应用程序而不是直接从浏览器集成 Rest API 时,我开始遇到问题。作为我的网络应用程序的第一步,我调用http://mydomain:3000/auth/github 进行身份验证,然后开始调用其他API(事务/列表等),但我总是得到 错误 401:“需要授权”

我尝试过的

在超级账本的 env 变量中将我的 Web 应用程序 URL 作为“重定向 URL”。在成功验证(调用http://mydomain:3000/auth/github)后,它成功重定向到我的 webapp 主页,但之后访问 Rest API(从 web 应用程序)再次抛出“需要授权”错误。

环境变量如下:

export COMPOSER_PROVIDERS='{
 "github": {
  "provider": "github",
  "module": "passport-github",
  "clientID": "CLIENT_ID",
  "clientSecret": "CLIENT_SECRET",
  "authPath": "/auth/github",
  "callbackURL": "/auth/github/callback",
  "successRedirect": "http://localhost:8080/home.html",
  "failureRedirect": "/"
 }
}'

在我的 Web 应用程序中加入passport-github2 机制(即,将我的应用程序注册到 github 的 oauth 中)并成功登录我的 Web 应用程序;调用http://mydomain:3000/auth/github 对区块链进行身份验证,但它也没有成功。

我有几个问题:

  1. 是否可以从另一个 Web 应用程序调用安全的超级账本 Rest API?
  2. 如果是,该怎么做?我在超级账本作曲家文档中找不到该信息。

已经尝试了一周,但没有任何答案。任何帮助将不胜感激。如果有任何不清楚的地方,请告诉我。谢谢。

【问题讨论】:

    标签: node.js hyperledger passport.js hyperledger-composer passport-github2


    【解决方案1】:

    我在现有的超级账本 github 问题之一上评论了这个问题(以下链接),我想分享为我解决这个问题的解决方案。 https://github.com/hyperledger/composer/issues/142

    解决方案: 用户sstone1

    由于 REST 服务器与您的 Web 应用程序位于不同的端口号上,因此您需要为 HTTP 客户端指定一个附加选项以将 cookie 传递给 REST 服务器。使用 Angular HTTP 客户端,添加 withCredentials 标志,例如:

    通过 Angular:

    this.http.get('http://mydomain:3000/api/MyAsset', { withCredentials: true })
    

    通过 JQuery AJAX:

      $.ajax({
        url: 'http://mydomain:3000/api/MyAsset',
        xhrFields: {
          withCredentials: true
        },
        headers: {
          ...
        }
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      相关资源
      最近更新 更多