Mongodb hyperledger composer API的Passport JWt授权

Mongodb hyperledger composer API的Passport JWt授权,mongodb,hyperledger-composer,passport-jwt,Mongodb,Hyperledger Composer,Passport Jwt,我正在寻找一个解决方案来实现hyperledger composer REST API的passport jwt授权策略。我已经通过这个链接建立了护照认证 生成hyperledger composer API,创建composer rest server docker容器,API受到保护—除了访问令牌生成、如何检索该令牌之外,一切都正常 此外,我还使用passport jwt创建了另一个nodejs应用程序mongodb,添加了很少的用户。我能够成功地从该应用程序生成令牌,并保护使用该令牌的任何

我正在寻找一个解决方案来实现hyperledger composer REST API的passport jwt授权策略。我已经通过这个链接建立了护照认证

生成hyperledger composer API,创建composer rest server docker容器,API受到保护—除了访问令牌生成、如何检索该令牌之外,一切都正常

此外,我还使用passport jwt创建了另一个nodejs应用程序mongodb,添加了很少的用户。我能够成功地从该应用程序生成令牌,并保护使用该令牌的任何快速路由

但我的难点是如何为composer rest server API生成令牌

正如在许多文章中所解释的,我创建了定制jwt,环境变量如下

定制jwt 环境变量

现在,我应该从何处生成令牌,如何检索该令牌,以便捕获并将其传递到hyperledger composer业务API的标题中


请提供详细帮助。

您可以使用node js生成的令牌。您需要注意的一件事是,您必须在此处使用相同的“secretrokey”:“admin”customkey,在节点js中使用它生成令牌

使用
options.jwtFromRequest=passportJwt.ExtractJwt.fromAuthHeaderAsBearerToken()时,按图像所示发出请求。它将访问令牌存储在cookie中。然后您可以从cookie中检索它以供进一步使用


Hi@honey shah,感谢您的回复。我使用的密钥与passport strategy token generation应用程序中使用的密钥相同。我已经生成了jwt令牌并尝试调用,但是我得到了200个响应,html源代码为belowHi@honey shah,感谢您的响应。我使用的密钥与passport strategy token generation应用程序中使用的密钥相同。我已经生成了jwt令牌并尝试调用,但我得到了200个html源响应。看不到访问令牌。我还要提到的另一点是,我使用的是opts.jwtFromRequest=ExtractJwt.fromAuthHeaderWithScheme('jwt');在生成令牌的nodejs应用程序中,但在customejwt文件中,我们提到了passportJwt.ExtractJwt.fromAuthHeaderAsberToken();。这将是一个IssueEyes@honey Shah尝试运行它的本地postman而不是chrome扩展,然后看看。我现在确实尝试过,结果是一样的,HTML源代码响应,状态代码为200
const passportJwt = require('passport-jwt');
const util = require('util');

function CustomJwtStrategy(options, verify) {
  options.jwtFromRequest = passportJwt.ExtractJwt.fromAuthHeaderAsBearerToken();
  passportJwt.Strategy.call(this, options, verify);
}

util.inherits(CustomJwtStrategy, passportJwt.Strategy);

module.exports = {
  Strategy: CustomJwtStrategy
};
COMPOSER_CARD=admin@tutorial-network
COMPOSER_NAMESPACES=never
COMPOSER_AUTHENTICATION=true
COMPOSER_MULTIUSER=true
COMPOSER_PROVIDERS='{
  "jwt": {
    "provider": "jwt",
    "module": "/home/composer/node_modules/custom-jwt.js",
    "secretOrKey": "admin",
    "authScheme": "saml",
    "successRedirect": "/",
    "failureRedirect":"/"
    }
}'
COMPOSER_DATASOURCES='{
  "db": {
    "name": "auth",
    "connector": "mongodb",
    "host": "mongo"
  }
}'