ASAuthorizationControllerDelegate всегда возвращает .canceled для резервного пароля Face ID и неудачных попыток.IOS

Программируем под IOS
Ответить
Anonymous
 ASAuthorizationControllerDelegate всегда возвращает .canceled для резервного пароля Face ID и неудачных попыток.

Сообщение Anonymous »

Я реализую вход с помощью Apple/пароли с помощью ASAuthorizationControllerDelegate и обрабатываю ошибки с помощью:

Код: Выделить всё

   func authorizationController(
controller: ASAuthorizationController,
didCompleteWithError error: Error
) {
guard let authError = error as? ASAuthorizationError else {
print("Unknown error:", error)
return
}

switch authError.code {
case .canceled:
print("User canceled authentication")

case .failed:
print("Authorization failed (generic)")

case .invalidResponse:
print("Invalid response from Apple")

case .notHandled:
print("Authorization not handled")

case .unknown:
print("Unknown authorization error")

@unknown default:
print("Future unknown error")
}
}
Однако я постоянно вижу .canceled во всех следующих ситуациях:
• Пользователь нажимает кнопку ❌ → .canceled (ожидается)
• Пользователь отменяет действие Face ID → .cancelled
• Face ID не работает и возвращается к паролю устройства
• Пользователь вводит неверный пароль → все равно .cancelled
Я никогда не получаю .failed для сбоев пароля или сбоев биометрического резерва — только .canceled.
Вопросы
  • Это ожидаемое поведение для ASAuthorizationController?
  • Почему неудачная попытка ввода пароля приводит к .canceled вместо .failed?
  • Существует ли какой-либо поддерживаемый способ отличить отмену пользователя от ошибки аутентификации (Face ID/пароль) с использованием этого API?
  • Когда следует ожидать появления .failed?
ASAuthorizationError.Code

Подробнее здесь: https://stackoverflow.com/questions/798 ... d-passcode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»