Хранение дополнительной информации с токеном пользователя в Express Gateway - PullRequest
0 голосов
/ 20 октября 2018

Я хочу разработать собственную политику для экспресс-шлюза для потока утверждений SAML для Salesforce.Помещение политики в экспресс-шлюз позволит пользователю и приложению, аутентифицированному на экспресс-шлюзе, также автоматически аутентифицироваться в Salesforce без каких-либо дополнительных трудностей для клиентского приложения.

Для предотвращения повторного выполнения потока утверждений SAML приПри каждом запросе на получение токена для Salesforce мы можем хранить и повторно использовать токен Salesforce OAuth в express-gateway.

Таким образом, основной поток API Salesforce, предоставляемый через express-gateway с использованием этой политики, будет:

image Источник

Жесткая деталь - жетон хранилища для повторного использования.Я думал о том, чтобы передать конфиг из 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

Мой вопрос был бы, как лучшедостичь цели здесь?

...