Hyperledger Composer API的Passport JWt认证

时间:2018-09-26 19:01:50

标签: mongodb hyperledger-composer passport-jwt

call back for access token我正在寻找一种解决方案,以为Hyperledger作曲家REST API实现护照jwt认证策略。我已点击此链接来设置护照认证https://www.codementor.io/gangachris125/passport-jwt-authentication-for-hyperledger-composer-rest-server-jqfgkoljn

生成hyperledger composer API,创建composer rest server docker容器,该API受到保护,除了访问令牌生成以及如何检索该令牌之外,其他一切似乎都可以正常工作。

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

但是我的难题是如何为作曲家的休息服务器API生成令牌

正如许多文章所述,我创建了自定义jwt,环境变量如下所示

自定义jwt

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"
  }
}'

composer rest server logs on startup

现在我应该从哪里生成令牌,如何检索该令牌,以便我可以捕获它并将其传递到Hyperledger Composer商业API的标头中。

请提供详细信息。

1 个答案:

答案 0 :(得分:0)

您可以使用节点js生成的令牌。需要注意的一件事是,您必须在"secretOrKey": "admin"自定义键中使用相同的自定义键,并使用它在节点js中生成令牌

使用options.jwtFromRequest =passportJwt.ExtractJwt.fromAuthHeaderAsBearerToken();时,如图所示发出请求。它将access_token存储在cookie中。然后,您可以从Cookie中检索它,以备将来使用。

enter image description here