2017-09-28 51 views
0

AWS Cognito集成到我的Swift应用程序和登录工作中。但是,当我尝试使用AWSCognitIdentityProvider API时,返回的task.result为零。为什么?下面是代码:为什么AWSCognitoIdentityProvider.getAdminUser和AWSCognitoIdentityProvider.listUsers返回的task.result为零?

let pool = AWSCognitoIdentityUserPool.default() 
let poolId = pool.userPoolConfiguration.poolId 

let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId:poolId) 
let configuration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentialsProvider) 
AWSServiceManager.default().defaultServiceConfiguration = configuration 

let aguReq = AWSCognitoIdentityProviderAdminGetUserRequest() 
aguReq?.userPoolId = poolId 
aguReq?.username = "USERNAME_GOES_HERE" 

let luReq = AWSCognitoIdentityProviderListUsersRequest() 
luReq?.userPoolId = poolId 

let acpDefault = AWSCognitoIdentityProvider.default() 
acpDefault.adminGetUser(aguReq!).continueWith(block: { (task: AWSTask<AWSCognitoIdentityProviderAdminGetUserResponse>) -> Any? in 
    task.result?.userAttributes?.forEach({ (attr: AWSCognitoIdentityProviderAttributeType) in 
    let attrName = attr.name 
    let attrValue = attr.value 
    print("attrName=\(String(describing: attrName)); attrValue=\(String(describing: attrValue))") 
    }) 
    return nil 
}) 

acpDefault.listUsers(luReq!).continueWith(block: { (task: AWSTask<AWSCognitoIdentityProviderListUsersResponse>) -> Any? in 
    task.result?.users?.forEach({ (u: AWSCognitoIdentityProviderUserType) in 
    print("username=\(String(describing: u.username))") 
    }) 
    return nil 
}) 

Info.plist引用所有Cognito的关键特性。是否有可能以某种方式保留listUsersadminGetUser

另外,对于USERNAME_GOES_HERE存根,我总是放置Cognito username,但不是Cognito ID或子UUID。那样有用吗? (这似乎很奇怪的是,username是必需的,因为我想在Cognito这username不一定跨越Cognito用户唯一的。

感谢。

回答

1

AdminGetUser和ListUsers是的API应该从您可以访问后台,以及电话都必须出示有效证件IAM。

你不应该叫从您的iOS应用这些API,而是使用iOS Mobile SDK方法,这将允许您的用户登录,然后调用相应的Cognito用户池的API。

由于为什么您的通话失败,似乎您正尝试使用联合身份识别服务临时凭证提供所需的IAM凭证。您正在使用身份池实例化凭证提供程序,但传递用户池标识而不是标识池标识。有关更多说明,请参阅this answer

+0

如果这些是后端API,前端客户端如何获得“sub”UUID? –

相关问题