Паспорт JWt Аутентификация для API композитора Hyperledger - PullRequest
0 голосов
/ 26 сентября 2018

перезвоните для получения токена доступа Я ищу решение для реализации стратегии аутентификации паспорта jwt для API REST API-редактора Hyperledger.Я перешел по этой ссылке для настройки паспортной аутентификации https://www.codementor.io/gangachris125/passport-jwt-authentication-for-hyperledger-composer-rest-server-jqfgkoljn.

Создание API-интерфейса компоновщика hyperledger, создание контейнера-докера остального сервера composer, API-интерфейсы защищены, кажется, что все работает, кроме генерации токена доступа, как получить этот токен.

Также я создал другое приложение nodejs с паспортом jwt, 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 журналы сервера при запуске

Теперь, откуда я должен сгенерировать токен, как извлечь этот токен, чтобы я мог захватить и передать его в заголовки для бизнес-API композитора Hyperledger.

Пожалуйста, помогите с подробностями.

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать токен, сгенерированный узлом js.Одна вещь, которую вам нужно позаботиться, это то, что вы должны использовать здесь "secretOrKey": "admin" customkey, с которым вы генерируете токен в узле js

. Выполните запрос, как показано на рисунке, так же, как вы используете options.jwtFromRequest =passportJwt.ExtractJwt.fromAuthHeaderAsBearerToken();.Это сохранит access_token в cookie.Затем вы можете извлечь его из cookie для дальнейшего использования.

enter image description here

...