Принудительно обновить данные авторизации BX24.refreshAuth
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
BX24.refreshAuth([someCallback: function]): void;
Функция BX24.refreshAuth принудительно обновляет данные авторизации OAuth 2.0: Битрикс24 выдает приложению новую пару access_token и refresh_token. Обновленные данные приходят в функцию-обработчик someCallback.
Функция работает только после BX24.init и только внутри фрейма приложения. Собственный scope функции не нужен.
Когда вызывать функцию
Для запросов к Битрикс24 принудительное обновление не нужно: перед вызовом BX24.callMethod библиотека сама сверяет срок действия токена, а при ответе с ошибкой expired_token обновляет токен и повторяет запрос.
Вызывайте refreshAuth, только если свежий токен нужен вашему коду раньше — например, чтобы передать его на свой сервер. access_token живет один час. Постоянно работающему с Битрикс24 серверу нужны оба токена: сохраняйте их и заменяйте прежние значения новыми.
Дальше сервер продлевает авторизацию сам, без фрейма приложения — запросом к серверу авторизации. Этот сценарий описывает Автоматическое продление авторизации. Там же объяснено, почему не стоит продлевать авторизацию по расписанию.
Параметры функции
|
Название |
Описание |
|
someCallback |
Обработчик, который выполнится после обновления токенов. Принимает объект с данными авторизации — такой же, как результат BX24.getAuth. Без обработчика токены тоже обновятся, но приложение их не получит |
Пример кода
Как использовать примеры в документации
BX24.init(() => {
const button = document.createElement('button');
button.textContent = 'Refresh auth';
button.addEventListener('click', () => {
BX24.refreshAuth((refreshedAuthInfo) => {
// передаем свежие токены своему серверу, чтобы он работал с Битрикс24 от имени приложения.
// токены секретны: не логируем их и не храним в браузере
fetch('https://example.com/b24/tokens', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
memberId: refreshedAuthInfo.member_id,
accessToken: refreshedAuthInfo.access_token,
refreshToken: refreshedAuthInfo.refresh_token
})
})
.then((response) => console.log('B24: tokens sent, status: ', response.status))
.catch((error) => console.error('B24: tokens are not sent: ', error));
})
});
document.body.appendChild(button);
});
Обработка ответа
Функция не возвращает данные (void). Результат приходит в someCallback: токены и срок их действия в нем новые, domain и member_id не меняются.
{
"access_token": "7f2ab466006efd82005fdecc00000000a1c4de93bb6d11e0a3c25f7b91d4c2a8",
"refresh_token": "b03fd266006efd82005fdecc0000000041e7c85d0f2a44b8a6d1e3c7594fb102",
"expires_in": 1720015327002,
"domain": "mycompany.bitrix24.ru",
"member_id": "42bc01fbd89dd1d45d13506933f6f4fc"
}
Состав, типы и назначение полей описывает Возвращаемые данные BX24.getAuth.
Обработка ошибок
Своих кодов ошибок у функции нет: она не обращается к REST API. При любой неудаче обработчик не выполняется.
|
Ситуация |
Что происходит |
Что делать |
|
Функция вызвана до того, как отработала инициализация библиотеки |
Вызов игнорируется молча: запрос не уходит, |
Перенести вызов в обработчик BX24.init |
|
Битрикс24 не смог выдать новый токен — например, у приложения закончилась подписка |
Битрикс24 показывает браузерный |
Проверить статус приложения в Битрикс24. Предусмотреть поведение приложения на случай, когда обработчик не выполнится |
|
Страница открыта не во фрейме приложения |
Библиотека не инициализируется: при загрузке она выбрасывает исключение |
Открывать страницу как приложение Битрикс24 |
Продолжите изучение
- Инициализация и авторизация в BX24.js: обзор функций
- Инициализировать библиотеку BX24.init
- Обработать первый запуск приложения у пользователя BX24.install
- Оповестить об окончании работы инсталлятора BX24.installFinish
- Получить данные для OAuth 2.0 BX24.getAuth
- Автоматическое продление токенов OAuth 2.0