Здравствуйте!
Проблема с отсутствием `refresh_token` в системе ЕСИА может быть связана с несколькими факторами. Давайте рассмотрим возможные причины и пути их решения:
1. **Правильные параметры запроса**: Убедитесь, что вы действительно устанавливаете параметр `access_type: "offline"` в запросе на получение авторизации. Пример запроса может выглядеть следующим образом:
```plaintext
https://esia.gosuslugi.ru/identity/authorize?response_type=code
&client_id=ВАШ_CLIENT_ID
&redirect_uri=ВАШ_REDIRECT_URI
&scope=openid
&access_type=offline
```
Проверьте, что вы правильно используете все параметры, включая `scope`, так как определенные scope могут влиять на возможность получения `refresh_token`.
2. **Первично полученный `refresh_token`**: Обратите внимание, что `refresh_token` обычно выдается только при первой авторизации пользователя. Если пользователь уже авторизовался ранее и вы запрашиваете токен повторно без указания дополнительной точки входа (например, через явный запрос на повторную авторизацию), `refresh_token` может не возвращаться.
3. **Кэширование `refresh_token`**: Если пользователь уже использовал свой `refresh_token`, возможно, он был аннулирован или обновлен, и в результате вы получаете новый токен доступа без `refresh_token`.
4. **Условия выдачи**: Убедитесь, что ваше приложение соответствует всем требованиям, установленным для выдачи `refresh_token`. Иногда может быть необходимость соблюдения определенных правил безопасности.
5. **Проверка документации**: Убедитесь, что вы проверили самую актуальную документацию ЕСИА на наличие изменений в политике выдачи токенов.
Если после проверки всех этих моментов проблема не решилась, попробуйте обратиться за поддержкой к технической команде ЕСИА или на форумах разработчиков, где могут помочь разобрать специфические случаи.