Я хочу разработать собственную политику для экспресс-шлюза для потока утверждений SAML для Salesforce.Помещение политики в экспресс-шлюз позволит пользователю и приложению, аутентифицированному на экспресс-шлюзе, также автоматически аутентифицироваться в Salesforce без каких-либо дополнительных трудностей для клиентского приложения.
Для предотвращения повторного выполнения потока утверждений SAML приПри каждом запросе на получение токена для Salesforce мы можем хранить и повторно использовать токен Salesforce OAuth в express-gateway.
Таким образом, основной поток API Salesforce, предоставляемый через express-gateway с использованием этой политики, будет:
Источник
Жесткая деталь - жетон хранилища для повторного использования.Я думал о том, чтобы передать конфиг из egContext в политику.Политика может получить параметры конфигурации Redis, а затем я могу использовать Redis для повторного сохранения токена с дополнительной информацией, например:
const tokenKey = db.options.namespace.concat('-access-token:', req.user.token.id);
const consumerTokensKey = db.options.namespace.concat('-consumer-access-tokens:', req.user.token.consumerId);
db.multi()
.hmset(tokenKey, req.user.token)
.hset(consumerTokensKey, req.user.token.id, req.user.token.expiresAt)
.exec();
Тогда он всегда будет доступен при перемещении req.user.token.вперед.Единственная проблема с этим заключается в том, что конфиг не предназначен для использования в качестве публичного API, как упомянуто в ответе на выпуск Github # 830
Мой вопрос был бы, как лучшедостичь цели здесь?