2017-09-28 49 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? –

相關問題