首页 > 解决方案 > 如何自定义 AWS Amplify iOS 身份验证警报?

问题描述

作为 iOS Swift 开发的新手,我想知道是否有人可以帮助我了解为身份验证错误(例如不正确的用户名和密码)自定义客户端警报消息的正确方法。下面是默认的告警信息,以异常名称为标题,用户体验不好。我将如何显示带有另一个标题和消息的警报弹出窗口?

AWS 身份验证错误警报

标签: iosswiftaws-sdk

解决方案


处理您的错误响应以定义自定义标题和消息,如下所示。

import AWSCognitoIdentityProvider

extension Error {
    var customizedDescription: String {
        let nsError = self as NSError
        if nsError.domain == AWSCognitoIdentityProviderErrorDomain, let code = AWSCognitoIdentityProviderErrorType(rawValue: nsError.code) {
            switch code {
            case .expiredCode: return "Verification code has expired. Please try again"
            case .codeMismatch: return  "Incorrect verification code. Please enter the correct code to continue."
            case .notAuthorized: return "Authentication failed. Please enter the correct credentials to continue."
            case .usernameExists: return "Username already exists."
            case .invalidPassword: return "Invalid password. Please try again."
            case .userNotConfirmed: return "User not confirmed. Please verify your account."
            default: return nsError.userInfo["message"] as? String ?? "AWS cognito failed with error code: \(nsError.code)"
            }
        }
        return localizedDescription
    }
}

https://gist.github.com/Catherine-K-George/11a94271bd0cff282e019cd2613d089b


推荐阅读