WIKI / ДИАГНОСТИКА

Поиск причин и проверка гипотез

Сначала установите границу отказа: сеть, база данных, протокол, сессия или авторизация. Ниже — маршрут для типичных проблем, а не универсальный набор команд.

RustCloak / Технические материалы · Сверяйте примеры с используемой версией проекта.

Сначала соберите контекст

Зафиксируйте версию исходников, тип окружения, время ошибки, используемый realm и идентификатор запроса, если он есть. До передачи логов удалите access tokens, cookies, пароли и ключи.

Сервер не подключается к PostgreSQL

  • Проверьте состояние службы и сетевую достижимость порта.
  • Проверьте разрешения роли и целевую базу.
  • Сравните значения конфигурации с реальным startup environment.
  • Убедитесь, что SQLx-миграции совместимы с кодом, который запущен.

Не заменяйте ошибку подключения произвольными localhost или паролями из примеров: это скрывает причину сбоя.

Invalid client или redirect_uri mismatch

Первым делом сравните client_id, realm, redirect_uri и тип клиента с записью в сервере. Даже различие в завершающем слэше может быть значимым. Отрицательный ответ на несуществующий client — корректное поведение, если он не зарегистрирован.

PKCE или некорректный authorization code

Проверьте, что приложение сохраняет исходный code_verifier и отправляет именно его при обмене кода. Код одноразовый и ограниченный по времени; нельзя повторно использовать его после успешного обмена.

Passkeys не завершают вход

Сверьте домен, origin и RP ID. Проверьте HTTPS или разрешённый контекст localhost, связность challenge между началом и завершением аутентификации и результат проверки криптографической подписи. Не логируйте сырые персональные данные аутентификатора без необходимости.

Роль сняли, а доступ остался

Разделите две причины: кэш claims на стороне IdP и уже выданные токены приложения. Инвалидация кэша может обновить новые claims, но не переписать токен, который был выпущен ранее. Проверьте политику истечения токена и точку принятия решения в API.

Что приложить к сообщению

Минимум: ожидаемое и фактическое поведение, шаги воспроизведения, HTTP-статус, источник и версия конфигурации. Секреты и чужие учётные данные прикладывать нельзя.

Шаблон технического отчёта →