Как обойти ограничение OAuth в Bitrix24, или как авторизоваться автоматически?
Доброго утра.
Есть внешнее приложение, которое имеет доступ к REST API, соответственно, проходит авторизацию через OAuth. Но есть проблема: access_token живет всего один час, а refresh_token - один месяц (или до первого использования). Мне же нужно сделать так, чтобы приложение по логину и паролю пользователя на Битрикс24 само, по крону, логинилось там, получало токены при его истечении, и если оба токена уже не актуальны, снова логинилось и снова их получало. Фактически, нужно сделать авторизацию полностью автоматической.
Для получения доступа к OAuth нужно, прежде всего, войти на сервис через логин и пароль. Как это сделать дистанционно, в документации не сказано (или я не нашел, ибо у 1с традиционно черт ногу сломит).
Есть идеи, как реализовать вышеописанное? Периодически проверять, не отвалилась ли авторизация и тыкать по кнопочке, как сейчас - плохой вариант. Заставлять крон использовать refresh_token хотя бы раз в пару недель, чтобы он не сгорал, можно, но это не самый надежный метод - вдруг он, по каким-то причинам (например, сервер ляжет), не обновится? Придется вручную авторизовываться снова.
Я далек от битрикса - а в чем проблема проходить авторизацию заново каждый раз?
Если Вы знаете логин и пароль пользователя - в своем скрипте всегда можно воспроизвести ту же последовательность запросов что вы делаете для получения этого токена.
Суть в том, что у битрикса нет явно описанного API, как это сделать. Воспроизвести (теоретически) можно, но, когда я делаю запрос к oauth-серверу, происходит редирект на форму входа. Просто взять и послать им логин \ пароль не лучшая идея, т.к. там наверняка есть csrf (чтобы не брутили).
Пока решил проблему обновлением авторизации по крону и email администратору, если не удалось.
Nentra, уже не скину)) Но я просто раз в 55 минут обновлял access_token, для этого там был API, это можно автоматически сделать. А если что не так, просто слал емейл, что так и так, отвалилось.