如何自动将用户分为不同的组(身份池)?

时间:2019-07-10 12:22:05

标签: ios swift amazon-cognito

我在iOS应用中使用AWS Cognito来实现用户注册和登录功能。我使用了官方的Amplify SDK DOC(https://aws-amplify.github.io/docs/ios/authentication)作为参考,该应用程序运行良好。但是,实际上,我想赋予我的用户不同的访问权限,该权限可以实现不同的内容(例如S3中的文件)。

在用户注册应用程序时,他们必须选择一个组。根据组,他们被赋予不同的访问权限。

我已经阅读了SDK DOC和开发人员指南,但没有找到实现此功能的好方法。

cognito中是否可以使用任何功能将用户分为不同的身份池?或者有人可以给我看一些允许用户具有不同访问权限的示例。

AWSMobileClient.sharedInstance().signUp(username: "your_username",
                                        password: "Abc@123!",
                                        userAttributes: ["email":"john@doe.com", "phone_number": "+1973123456"]) { (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)")
    }
}

1 个答案:

答案 0 :(得分:0)

您不必将用户置于不同的身份池中。 Cognito已经拥有user groups,您可以用来分配不同的角色。 我对IOS并不熟悉,但是应该有一个管理员将用户添加到组的方法。