Перейти к основному содержимому

Восстановление пароля

Операции восстановления пароля отправляют одноразовый код на email и применяют новый пароль после подтверждения.

Запрос кода восстановления​

MutationdocumentId: sendPasswordRecoveryEmailauth: public

sendPasswordRecoveryEmail​

Описание​

Отправляет код восстановления пароля, если email принадлежит аккаунту. Для зарегистрированного и неизвестного адреса операция возвращает одинаковый успешный ответ.

Повторный запрос для того же email в течение интервала повторной отправки возвращает тот же успешный результат без нового кода и письма.

Входные данные​

ПолеТипОбязательныйОписание
emailString!✓Email мастер-аккаунта

Результат​

Тип ответа - OperationResult.

Ошибки​

  • RECOVERY_EMAIL_DISABLED - восстановление по email отключено в проекте.
  • TOO_MANY_ATTEMPTS - с одного IP отправлено слишком много запросов.

При ограничении IP extensions.retryAfterSeconds содержит время ожидания до следующего запроса.

Пример обмена​

Запрос
documentId: sendPasswordRecoveryEmail
{
"documentId": "sendPasswordRecoveryEmail",
"variables": {
"email": "[email protected]"
}
}
Ответ
200 OK
{
"data": {
"sendPasswordRecoveryEmail": {
"message": "Код восстановления отправлен"
}
}
}

Связанные типы​

Подтверждение восстановления​

MutationdocumentId: confirmPasswordRecoveryCodeauth: public

confirmPasswordRecoveryCode​

Описание​

Проверяет код восстановления и устанавливает новый пароль мастер-аккаунта.

Входные данные​

ПолеТипОбязательныйОписание
emailString!✓Email мастер-аккаунта
codeString!✓Код восстановления
newPasswordString!✓Новый пароль

Результат​

Тип ответа - UserResult с обновленным пользователем и сообщением.

Ошибки​

  • RECOVERY_EMAIL_DISABLED - восстановление по email отключено в проекте.
  • INVALID_CODE - код неверный или истек.
  • TOO_MANY_ATTEMPTS - превышен лимит попыток подтверждения.
  • PASSWORD_TOO_WEAK - новый пароль найден в базе скомпрометированных паролей.

Для неизвестного email и неверного, истёкшего или уже использованного кода возвращается одинаковая ошибка INVALID_CODE. При ограничении extensions.retryAfterSeconds содержит время ожидания.

Попытки подтверждения ограничиваются отдельно для IP и пары IP с email. Глобальной блокировки email нет, поэтому атака с другого адреса не блокирует владельцу применение корректного кода.

Пример обмена​

Запрос
documentId: confirmPasswordRecoveryCode
{
"documentId": "confirmPasswordRecoveryCode",
"variables": {
"email": "[email protected]",
"code": "A1B2-C3D4-E5F6-7890",
"newPassword": "Recovered26!"
}
}
Ответ
200 OK
{
"data": {
"confirmPasswordRecoveryCode": {
"user": {
"id": "1001",
"email": "[email protected]"
},
"message": "Пароль изменен"
}
}
}

Связанные типы​