Ошибки и ограничения
Коды ошибок, лимиты и правила безопасности.
Ошибки авторизации
Ошибки /oauth/token приходят в формате OAuth 2.0: {"error": "код", "error_description": "текст по-русски"}.
| Код | Статус | Что значит и что делать |
|---|---|---|
invalid_client | 401 | Неверный client_id или секрет; приложение ещё не одобрено или приостановлено. Проверьте ключи, выпустите новый секрет. |
invalid_grant | 400 | Код истёк (60 с) или уже использован; не совпал redirect_uri или code_verifier; токен обновления отозван, истёк или уже использован; аккаунт отключён. Отправьте человека войти заново. |
invalid_request | 400 | Нет обязательного параметра; у публичного приложения нет PKCE; метод PKCE не S256. |
unsupported_grant_type | 400 | Поддерживаются только authorization_code и refresh_token. |
unsupported_response_type | — | В запросе авторизации response_type не code. Показывается человеку на странице UNIT ID. |
access_denied | — | Человек отказался на экране согласия. Приходит на ваш redirect_uri. |
invalid_token | 401 | Токен доступа истёк или отозван — обновите его или попросите войти. |
insufficient_scope | 403 | У токена нет нужного права. |
Ограничения
| Что | Лимит |
|---|---|
| Приложений у одного человека | 5 (включая заявки на рассмотрении) |
| Неверные пароли | 5 на одну почту или 20 с одного адреса за 15 минут — затем пауза |
| Коды 2FA | 5 неверных за 15 минут — затем пауза |
| Описание приложения | от 10 до 1000 символов |
Безопасность
- Секрет — только на сервере. Не кладите его в мобильное приложение, браузер, публичный репозиторий.
- Всегда передавайте и сверяйте
state; используйте PKCE даже с секретом. - Адреса возврата — только HTTPS (кроме
http://localhostдля разработки) и только те, которыми вы управляете. - Храните людей по
sub, а не по почте. - Запрашивайте минимум прав и не храните токены дольше, чем нужно.
- Секрет утёк — сразу выпустите новый в разделе «Разработчикам»: старый перестанет действовать.