Срок действия токена доступа истек

Я использовал RingCentral Client v. 2.3.4.

Я реализовал авторизацию OAuth для получения токена доступа, который затем сохраняется в БД. Мы также установили для свойства токена автоматического обновления значение true. Мы обработали событие маркера обновления и обновили маркер доступа в базе данных. Мы используем этот токен из БД для создания подробного события телефонии, пока здесь все работает нормально, но через некоторое время срок действия токена может истечь через пару часов.

Есть ли способ сохранить этот токен действительным без вмешательства пользователя.


person Shridhar Joshi    schedule 20.09.2018    source источник


Ответы (2)


Каждый пользователь RingCentral может иметь не более 5 токенов прямого доступа/обновления. Допустим, вы используете одни и те же учетные данные пользователя для запроса маркеров доступа/обновления 6 раз за короткое время. Затем первый запрошенный вами токен доступа/обновления становится недействительным.

Может это ваш случай? Используете ли вы одни и те же учетные данные пользователя RingCentral в нескольких приложениях? В этом случае очень вероятно, что у вас есть более 5 живых токенов, и самый старый из них, хранящийся в вашей базе данных, недействителен.

Обновление:

Вы также можете отключить функцию автоматического обновления: https://github.com/ringcentral/ringcentral-csharp-client#auto-refresh И выполняйте обновление вручную всякий раз, когда истечет срок действия токена доступа (до истечения срока действия токена обновления). Таким образом, вам не нужно прослушивать событие обновления, потому что все действия обновления инициируются вашим кодом. Просто не забывайте обновлять БД после каждого обновления.

person Tyler Long    schedule 20.09.2018

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

Срок действия токена доступа составляет 3600 с = 1 час. Срок действия токена обновления составляет 7 дней (1 неделя).

Вы можете обновлять токен доступа и обновлять токен каждые 1 час. Время expires_at позволяет вам узнать, когда вам нужно обновить токен, и регулярная проверка позволит вам обновлять его по мере необходимости. Вам не нужно вызывать его слишком часто перед каждым вызовом API.

Вы можете обновить токен, срок действия которого не истек, и вы можете сделать это до истечения срока его действия, используя токен обновления. Предыдущий токен доступа будет немедленно удален, и будет возвращен новый токен доступа. Для каждого экземпляра одновременно будет только один активный токен доступа.

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

дополнительная ссылка: https://forums.developers.ringcentral.com/articles/1426/generating-access-token-and-refresh-token-and-effi.html

person Anirban Sen Chowdhary    schedule 21.06.2019