Обновление токена Box API с нескольких серверов

Мы планируем перенести нашу интеграцию с Box v1 на v2. Наша реализация интеграции включает вызовы API для одновременного доступа к учетной записи ящика пользователя и файлам с разных серверов.

С v2 и введением токена обновления мы хотели бы знать, можно ли одновременно выполнять несколько запросов токена обновления с нескольких серверов через одну и ту же учетную запись пользователя.

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

Спасибо за помощь Асаф


person Assaf Kamil    schedule 06.10.2013    source источник


Ответы (1)


Мы рекомендуем вам использовать некоторую координацию между вашими серверами для управления токенами аутентификации и токенами обновления. Хотя у пользователя может быть несколько токенов доступа к одной и той же службе, ему придется проходить аутентификацию несколько раз, чтобы получить их. Вы не можете создавать дополнительные токены аутентификации из одной пары токенов авторизации/обновления.

Вот что мы рекомендуем.

Создайте пару зашифрованных столбцов в своей базе данных для хранения токена аутентификации, токена обновления, даты и времени для «token_expires» и флага для «token_refresh_in_progress». Определите его по идентификатору пользователя.

Напишите свой код так, чтобы, когда вы собираетесь позвонить, если вы близки (скажем, в течение минуты) к дате истечения срока действия токена, вместо того, чтобы делать свой звонок, вы проверяли, установлен ли флаг обновления. , или если уже есть новая пара токенов. Если флаг не был установлен каким-либо другим сервером в кластере, установите флаг, что вы выполняете обновление. Сделайте вызов refresh-grant и обновите базу данных новой парой и, конечно же, сбросьте флаг.

person Peter    schedule 07.10.2013