Сначала соберите контекст
Зафиксируйте версию исходников, тип окружения, время ошибки, используемый 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-статус, источник и версия конфигурации. Секреты и чужие учётные данные прикладывать нельзя.
Сверьте примеры с используемой ревизией исходников и подготовьте отчёт.
Как сообщить об ошибке →