Восстановление пароля
Операции восстановления пароля отправляют одноразовый код на email и применяют новый пароль после подтверждения.
Запрос кода восстановления
sendPasswordRecoveryEmail
Описание
Отправляет код восстановления пароля, если email принадлежит аккаунту. Для зарегистрированного и неизвестного адреса операция возвращает одинаковый успешный ответ.
Повторный запрос для того же email в течение интервала повторной отправки возвращает тот же успешный результат без нового кода и письма.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email мастер-аккаунта |
Результат
Тип ответа - OperationResult.
Ошибки
RECOVERY_EMAIL_DISABLED- восстановление по email отключено в проекте.TOO_MANY_ATTEMPTS- с одного IP отправлено слишком много запросов.
При ограничении IP extensions.retryAfterSeconds содержит время ожидания до следующего запроса.
Пример обмена
{
"documentId": "sendPasswordRecoveryEmail",
"variables": {
}
}
{
"data": {
"sendPasswordRecoveryEmail": {
"message": "Код восстановления отправлен"
}
}
}
Связанные типы
Подтверждение восстановления
confirmPasswordRecoveryCode
Описание
Проверяет код восстановления и устанавливает новый пароль мастер-аккаунта.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email мастер-аккаунта |
code | String! | ✓ | Код восстановления |
newPassword | String! | ✓ | Новый пароль |
Результат
Тип ответа - UserResult с обновленным пользователем и сообщением.
Ошибки
RECOVERY_EMAIL_DISABLED- восстановление по email отключено в проекте.INVALID_CODE- код неверный или истек.TOO_MANY_ATTEMPTS- превышен лимит попыток подтверждения.PASSWORD_TOO_WEAK- новый пароль найден в базе скомпрометированных паролей.
Для неизвестного email и неверного, истёкшего или уже использованного кода возвращается одинаковая ошибка INVALID_CODE. При ограничении extensions.retryAfterSeconds содержит время ожидания.
Попытки подтверждения ограничиваются отдельно для IP и пары IP с email. Глобальной блокировки email нет, поэтому атака с другого адреса не блокирует владельцу применение корректного кода.
Пример обмена
{
"documentId": "confirmPasswordRecoveryCode",
"variables": {
"code": "A1B2-C3D4-E5F6-7890",
"newPassword": "Recovered26!"
}
}
{
"data": {
"confirmPasswordRecoveryCode": {
"user": {
"id": "1001",
},
"message": "Пароль изменен"
}
}
}