🔐 2.7.0 — Авторизация по refresh token
Добавлен альтернативный способ входа в «Мой Налог» — по refreshToken вместо логина и пароля. Реализация issue #26.
✨ Что нового
- Вход для аккаунтов через Госуслуги. При регистрации в «Мой Налог» через Госуслуги у аккаунта нет пароля — раньше сервис для таких пользователей не работал. Теперь можно авторизоваться по бессрочному
refreshTokenиз браузера. - Переключатель метода — новая переменная
MOY_NALOG_AUTH_METHOD:password(по умолчанию) илиrefresh. - Автоматическое обновление токена — если ФНС когда-нибудь вернёт обновлённый
refreshToken, он сохраняется вsync_state.jsonи используется при следующих запусках.
⚙️ Как включить
В .env:
MOY_NALOG_AUTH_METHOD='refresh'
MOY_NALOG_REFRESH_TOKEN='<refreshToken из браузера>'
DEVICE_ID='<deviceId из браузера>'refreshToken и deviceId берутся из DevTools браузера (F12 → Network → запрос auth/esia → вкладка Response). Подробная инструкция — в README и .env.example.
⚠️
refreshTokenпривязан кdeviceId— оба значения нужно брать из одной сессии браузера.
🔄 Обратная совместимость
Полная. Без изменений .env всё работает как раньше — по умолчанию используется авторизация по логину и паролю. Обновление безопасно для текущих пользователей.
🔧 Под капотом
- Новый эндпоинт
POST /api/v1/auth/tokenс телом{deviceInfo, refreshToken}. - Метод
authenticate()стал диспетчером (_authenticate_password/_authenticate_refresh) — вся логика регистрации доходов, возвратов и переавторизации по401работает одинаково в обоих режимах.
Обновление: docker compose down && docker compose pull && docker compose up -d