我在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)")
}
}
答案 0 :(得分:0)
您不必将用户置于不同的身份池中。 Cognito已经拥有user groups,您可以用来分配不同的角色。 我对IOS并不熟悉,但是应该有一个管理员将用户添加到组的方法。