В Swift, как заставить пользовательские атрибуты работать в AWSMobileClient.sharedInstance (). SignUp - PullRequest
0 голосов
/ 09 января 2019

Я настроил проект swift 4 и включил средства AWS Amplify Authorization как часть установки. Все работает, если я хочу использовать базовые входные данные для регистрации электронной почты, пароля и номера телефона, но если я хочу включить другие атрибуты и / или изменить некоторые обязательные атрибуты, они не отображаются на странице регистрации. Я исследовал AWSUserPoolSignUpViewController.m и вижу (IBAction) onSignUpClicked: (id) отправитель жестко запрограммирован, вызывая имя пользователя, пароль и номер телефона. Я также вижу, что атрибут userAttribute в настоящее время имеет значение nil. Я не уверен, как я могу вставить и изменить необходимые мне атрибуты.

func signUp(){
    AWSMobileClient.sharedInstance().signUp(username: "your_username",
                                            password: "Abc@123!",
                                            userAttributes: ["email": "john@doe.com", "DOB": "01/01/2000", "gender": "male", "zipcode": "07042"]){ (signUpResult, error) in
        if let signUpResult = signUpResult {
            switch(signUpResult.signUpConfirmationState) {
            case .confirmed:
                print("User is signed up and confirmed.")
            case .unconfirmed:
                print("User is not confirmed and needs verification via \(signUpResult.codeDeliveryDetails!.deliveryMedium) sent at \(signUpResult.codeDeliveryDetails!.destination!)")
            case .unknown:
                print("Unexpected case")
            }
        } else if let error = error {
            if let error = error as? AWSMobileClientError {
                switch(error) {
                case .usernameExists(let message):
                    print(message)
                default:
                    break
                }
            }
            print("\(error.localizedDescription)")
        }
    }
}
...