这个错误通常出现在您未在 Amazon Cognito 中配置无身份认证用户池并尝试在未验证的情况下访问受保护的资源时。解决此问题的方法是按照 Amazon Cognito 开发人员指南中的说明配置用户池,并通过 AWS SDK 身份验证和授权 API 构建身份验证的用户体验。
以下是一些可能导致此错误的示例代码:
client = boto3.client('cognito-idp')
response = client.admin_get_user(
UserPoolId='USER_POOL_ID',
Username='USERNAME'
)
在这种情况下,必须提供用户池 ID,并且必须进行身份验证才能访问用户数据。如果您要访问无身份验证的用户数据,请使用以下代码:
import boto3
client = boto3.client('cognito-identity')
identity_id = client.get_id(
AccountId='ACCOUNT_ID',
IdentityPoolId='IDENTITY_POOL_ID'
)
response = client.get_credentials_for_identity(
IdentityId=identity_id['IdentityId']
)
在这种情况下,您必须提供身份池 ID,并且不需要进行身份验证即可访问用户数据。 请参阅 AWS Cognito 开发人员指南获取更多信息。