Паспорт JWt Аутентификация для API композитора Hyperledger

Перезвоните, чтобы получить маркер доступа. Я ищу решение для реализации стратегии аутентификации паспорта jwt для API REST. Я перешел по этой ссылке для настройки аутентификации паспорта 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"
  }
}'

Сервер композитора отдыхает при запуске

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

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

1 ответ

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

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

Другие вопросы по тегам