Как указать пользовательское сообщение об ошибке в Android с помощью Cognito - PullRequest
0 голосов
/ 04 сентября 2018

В настоящее время у меня есть приложение для Android, которое использует amazon-cognito-sdk для входа пользователя. Сообщение, отображаемое, когда пользователь не существует или вводит неправильный пароль, не очень хорошо, поэтому я хотел бы настроить это, но я могу Не видите способ сделать это?

1 Ответ

0 голосов
/ 05 сентября 2018

Я делал подобные вещи на работе. По сути, мы отобразили исключение SDK в наш внутренний класс AuthenticationException, каждый тип будет иметь свое собственное сообщение. Ниже приведен пример кода в котлине.

private fun toAuthError(exception: Exception): AuthenticationError {
    return when(exception) {
        is UserNotFoundException -> AuthenticationError.UserNotFound()
        is InvalidParameterException -> AuthenticationError.InvalidParameter()
        is NotAuthorizedException -> AuthenticationError.UserNotFound()
        is InvalidPasswordException -> AuthenticationError.InvalidPassword()
        is InvalidLambdaResponseException -> AuthenticationError.InvalidResponse()
        is LimitExceededException -> AuthenticationError.LimitExceeded()
        is UsernameExistsException -> AuthenticationError.UsernameExists()
        is UserNotConfirmedException -> AuthenticationError.UserNotConfirmed()
        is CodeMismatchException -> AuthenticationError.VerificationCodeMismatch()
        is ExpiredCodeException -> AuthenticationError.VerificationCodeExpired()
        else -> AuthenticationError.UnknownError()
    }
}

Обратите внимание, что указанный выше метод вызывается во время onFailure в познании AuthenticationHandler обратного вызова.

        val authenticationHandler = object : AuthenticationHandler {
            ...
            override fun onFailure(exception: Exception) {
                Timber.e("login Failure $exception")
                subscriber.onError(toAuthError(exception))
            }
        }
...