【问题标题】:how to identify a cognito id belongs to a pool using boto3?如何使用 boto3 识别 cognito id 属于池?
【发布时间】:2018-12-01 23:28:51
【问题描述】:

使用下面的代码,我得到了一个 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,所以我需要为给定的IdentityId 识别正确的IdentityPoolId
使用 boto3 库如何识别 IdentityId 是否属于 IdentityPoolId

【问题讨论】:

    标签: amazon-web-services boto3 amazon-cognito aws-cognito aws-userpools


    【解决方案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 数量调整获取响应的方式,因为您可能需要对记录进行分页

    【讨论】:

      猜你喜欢
      • 2017-10-27
      • 2016-10-18
      • 2019-01-24
      • 2019-04-01
      • 1970-01-01
      • 2020-10-07
      • 2021-08-05
      • 2018-04-26
      • 2020-07-01
      相关资源
      最近更新 更多