2

回调访问令牌我正在寻找一种解决方案来为超级账本作曲家 REST API 实施护照 jwt 身份验证策略。我已按照此链接设置护照身份验证https://www.codementor.io/gangachris125/passport-jwt-authentication-for-hyperledger-composer-rest-server-jqfgkoljn

生成超级账本作曲家 API,创建作曲家休息服务器 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"
  }
}'

作曲家休息服务器登录启动

现在我应该从哪里生成令牌,如何检索该令牌,以便我可以捕获并将其传递到超级账本作曲家业务 API 的标头中。

请帮忙详细说明。

4

1 回答 1

0

可以使用node js生成的token。您需要注意的一件事是您必须在此处使用 "secretOrKey": "admin"与您在节点 js 中生成令牌相同的 customkey

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

在此处输入图像描述

于 2018-09-27T08:26:07.920 回答