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的關鍵特性。是否有可能以某種方式保留listUsers
和adminGetUser
?
另外,對於USERNAME_GOES_HERE存根,我總是放置Cognito username
,但不是Cognito ID或子UUID。那樣有用嗎? (這似乎很奇怪的是,username
是必需的,因爲我想在Cognito這username
不一定跨越Cognito用戶唯一的。
感謝。
如果這些是後端API,前端客戶端如何獲得「sub」UUID? –