0

使用下面的代码,我得到了OpenID token一个IdentityId.

import boto3
cognito_client = boto3.client('cognito-identity')
data = {'IdentityPoolId': identity_pool_id,
        'Logins': logins,
        'TokenDuration': 24 * 60 * 60,
        'IdentityId': identity_id}
cognito_client.get_open_id_token_for_developer_identity(
            **data)

但我有两个IdentityPoolId,所以我需要确定IdentityPoolId一个给定的合适的IdentityId
使用 boto3 库我如何识别一个是否IdentityId属于一个IdentityPoolId

4

1 回答 1

1

如果您只有 IdentityId 值,则需要使用 Cognito-Identity 客户端的 list_identities() 函数从池中获取所有 ID,然后确定您的 ID 是否是池的一部分。

https://boto3.readthedocs.io/en/latest/reference/services/cognito-identity.html#CognitoIdentity.Client.list_identities

import boto3

def getPoolID(boto3Client,PoolIDs,idVal):
    For PoolID in PoolIDs: 
        response = boto3Client.list_identities(IdentityPoolId=PoolID)   
        for ID in response['Identities']:
            if idVal == ID['IdentityId']:
                return PoolID

cognitoClient = boto3.client('cognito-identity')
PoolIDList=['PoolID1','PoolID2'] 
IdentityIdToCheck='Value'
FinalPoolID = getPoolID(cognitoClient,PoolIDList,IdentityIdToCheck)
print FinalPoolID

您可能需要根据 ID 池中的 ID 数量调整获取响应的方式,因为您可能需要对记录进行分页

于 2018-06-23T18:50:53.277 回答