如何使用cognito在android中指定自定义错误消息

问题描述 投票:4回答:1

我目前有一个Android应用程序,使用amazon-cognito-sdk进行用户登录。当用户不存在或输入错误的密码时显示的消息不是很好所以我想自定义这个但我看不到任何方式这样做?

android amazon-web-services amazon-cognito aws-cognito
1个回答
3
投票

我在工作中做了类似的事情。基本上,我们将SDK异常映射到我们的内部AuthenticationException类,每个类型都有自己的消息。下面是kotlin中的示例代码。

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))
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.