mongodb - 用于 hyperledger composer API 的 Passport JWt 身份验证

标签 mongodb hyperledger-composer passport-jwt

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

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

我还创建了另一个带有 passport jwt 的 nodejs 应用程序,添加了几个用户的 mongodb。我能够从该应用程序成功生成 token 并使用该 token 保护任何快速路由。

但我的挣扎点是如何为 composer rest server API 生成 token

正如我在许多文章中所解释的那样,我创建了自定义 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

现在我应该从哪里生成 token ,如何检索该 token ,以便我可以捕获它并将其传递到 hyperledger composer 业务 API 的 header 中。

请提供详细信息。

最佳答案

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

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

enter image description here

关于mongodb - 用于 hyperledger composer API 的 Passport JWt 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524471/

相关文章:

java - 从 JAVA 应用程序使用 SSL 连接到 MongoDb

java - 使用 MongoDB 在 Java 中计算距离

hyperledger-fabric - 如何在 Hyperledger Composer 中从 CA 获取身份证书

hyperledger-composer - 我可以在事务处理器上使用带有 require 的 JavaScript 库吗

node.js - Passport.authenticate 导出 -> Passport.authenticate( 一些东西 ) (req, res, next)?

java - 如何使用 MongoSpark 和 JavaRdd 在 java 中执行 MapReduce

mongodb - 使用 MongoMapper 预先加载关联

hyperledger-fabric - ssl_transport_security.cc :599] Could not load any root certificate

node.js - JWT Passport 未从中间件返回用户数据