2015-08-18 5 views
0

В моем приложении Node.js я использую OpenStack Swift (хранилище объектов) в качестве службы хранения. Приложению требуется токен авторизации для доступа к службе хранения, (небольшая) проблема заключается в том, что токен доступа необходимо обновлять один раз в пару часов. Как мне сделать это, чтобы обеспечить гладкий опыт для конечного клиента?Обновление токена доступа OpenStack

  1. Обновить токен, срок действия которого истекает в ответ на код ответа OpenStack 401.
  2. Запланируйте запрос обновления токена вручную с помощью какого-либо планировщика узлов или задачи cron.

Приложение полагается на доступ к хранилищу. Использование опции 1 будет эффективно ограничивать доступ к приложению для моих клиентов на секунду. Это может показаться ничего, но если вы умножаете это на количество клиентов, это не так мало.

Если приложение зависит от какой-либо базы данных/хранилища, требующей авторизации Каков отраслевой стандарт для выполнения таких запросов на авторизацию сервера-сервера? По какой-то причине получение токена из OpenStack Keyrock занимает много времени (~ 1 с), поэтому я спрашиваю.

ПРИМЕЧАНИЕ: в настоящее время я не в состоянии влиять на срок службы токенов.

ответ

1

Учитывая, что у вас нет возможности изменять срок действия токена аутентификации и вы хотите скрыть обновление авторизации от пользователей, кажется, что вам подходит только ваш второй вариант. К счастью, синхронизированные арифметические действия легко реализуются в Node.js.

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

+0

Вы предлагаете какой-либо метод для этого? Должен ли я использовать внутренние часы узла или ретрансляцию внешних служб (cron like stuff). У вас есть опыт в этой области? – Pietrko

Смежные вопросы