Паспорт 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 для дальнейшего использования.