# Руководство по устранению ошибок авторизации ## Ошибка: "Сервер вернул пустой или некорректный ответ" Эта ошибка может возникать по нескольким причинам. Ниже приведены возможные причины и способы их устранения. ### Возможные причины 1. **Неправильный URL сервера** - URL должен начинаться с `http://` или `https://` - Проверьте, что URL введен полностью и правильно - Пример правильного URL: `https://crm.example.com` 2. **Проблемы с подключением к серверу** - Проверьте интернет-соединение - Убедитесь, что сервер доступен - Проверьте, не блокирует ли брандмауэр соединение 3. **Неверные учетные данные** - Проверьте правильность email и пароля - Убедитесь, что учетная запись активна 4. **Неправильный API ключ** - Проверьте, что API ключ введен правильно - Убедитесь, что API ключ активен и имеет необходимые права 5. **Проблемы на стороне сервера** - Сервер может быть временно недоступен - Возможны проблемы с базой данных - Сервер может возвращать пустой ответ из-за внутренних ошибок ### Пошаговая диагностика 1. **Проверьте вводимые данные** - Убедитесь, что все поля заполнены - Проверьте формат email - Убедитесь, что URL начинается с `http://` или `https://` 2. **Проверьте подключение** - Попробуйте открыть URL сервера в браузере - Проверьте, доступен ли сервер из вашей сети 3. **Проверьте логи приложения** - Включите отладочные логи в Android Studio - Ищите сообщения с тегом `AuthRepository` - Обратите внимание на коды HTTP ответов 4. **Проверьте API ключ** - Убедитесь, что API ключ действителен - Проверьте, имеет ли ключ необходимые права доступа ### Коды HTTP ошибок и их значения - **400** - Некорректный запрос. Проверьте введенные данные и формат email. - **401** - Неверный email или пароль. Проверьте правильность введенных данных. - **403** - Доступ запрещен. Проверьте API ключ и права доступа. - **404** - Сервер не найден. Проверьте URL сервера и подключение к сети. - **405** - Метод не разрешен. Эндпоинт не существует или недоступен. - **422** - Некорректные данные. Проверьте формат email и пароля. - **500** - Ошибка сервера. Сервер временно недоступен, попробуйте позже. - **502, 503, 504** - Проблемы с сервером. Проверьте подключение к серверу. ### Сетевые ошибки - **UnknownHostException** - Нет подключения к серверу. Проверьте интернет-соединение и правильность URL. - **SocketTimeoutException** - Таймаут соединения. Проверьте подключение к серверу и попробуйте снова. - **IOException** - Ошибка сети. Проверьте подключение к интернету. ### Если проблема не решена 1. **Перезапустите приложение** 2. **Проверьте версию приложения** - убедитесь, что используется последняя версия 3. **Обратитесь в поддержку** - предоставьте: - Текст ошибки - Логи приложения (с тегом `AuthRepository`) - Используемый URL сервера - Версию приложения ### Примеры правильного ввода данных ``` URL сервера: https://crm.example.com Email: user@example.com Пароль: your_password API Key: your_api_key_here ``` ### Техническая информация для разработчиков Приложение использует следующие эндпоинты для авторизации: - `POST /api/iam/auth/login-site` - для авторизации через сайт - `POST /api/iam/auth/login-ext` - для авторизации через расширение Все запросы выполняются с использованием Retrofit и OkHttp с таймаутом 30 секунд. Для диагностики проблем рекомендуется включить уровень логирования `BODY` в OkHttpInterceptor.