如何识别 cognito id 属于使用 boto3 的池?
how to identify a cognito id belongs to a pool using boto3?
使用波纹管代码我得到一个 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
?
如果您只有 IdentityId 值,则需要使用 Cognito-Identity 客户端的 list_identities() 函数从池中获取所有 ID,然后确定您的 ID 是否是游泳池的一部分。
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 数量调整获取响应的方式,因为您可能需要对记录进行分页
使用波纹管代码我得到一个 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
?
如果您只有 IdentityId 值,则需要使用 Cognito-Identity 客户端的 list_identities() 函数从池中获取所有 ID,然后确定您的 ID 是否是游泳池的一部分。
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 数量调整获取响应的方式,因为您可能需要对记录进行分页