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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам