github grandvan709/yookassa-to-mynalog 2.7.0

6 hours ago

🔐 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

Don't miss a new yookassa-to-mynalog release

NewReleases is sending notifications on new releases.