当前位置: 首页 > 知识库问答 >
问题:

AWS Cognito错误:“identityPoolId”无法满足约束

柳英资
2023-03-14

我是新的Cognito。我试图使用Lambda实现AWS Cognito。这是我正在遵循的教程。

AmazonCognitoIdentityClient client =
                new AmazonCognitoIdentityClient();
    GetOpenIdTokenForDeveloperIdentityRequest tokenRequest = new GetOpenIdTokenForDeveloperIdentityRequest();
    tokenRequest.setIdentityPoolId("us-east-1_XXXXXXX");

这是我在setIdtyPoolId中使用的池ID

这是JUnit测试

public class AuthenticateUser implements RequestHandler<Object, Object> {

@Override
public Object handleRequest(Object input, Context context) {

    AuthenticateUserResponse authenticateUserResponse = new AuthenticateUserResponse();
    @SuppressWarnings("unchecked")
    LinkedHashMap inputHashMap = (LinkedHashMap)input;
    User user = authenticateUser(inputHashMap);
    return null;
}

public User authenticateUser(LinkedHashMap input){
    User user = null;
    String userName = (String) input.get("userName");
    String passwordHash = (String) input.get("passwordHash");

    try {
        AmazonDynamoDBClient client = new AmazonDynamoDBClient();
        client.setRegion(Region.getRegion(Regions.US_EAST_1));
        DynamoDBMapper mapper = new DynamoDBMapper(client);
        user = mapper.load(User.class, userName);

        if(user != null){
            System.out.println("user found");
            if(user.getPasswordHash().equals(passwordHash)){
                System.out.println("user password matched");
                String openIdToken = getOpenIdToken(user.getUserId());
                user.setOpenIdToken(openIdToken);
                return user;
            } else {
                System.out.println("password unmatched");
            }
        } else {
            System.out.println("user not found");
        }
    } catch (Exception e) {
        System.out.println("Error: " + e.toString());
    }

    return user; 
}

这是输出

user found
user password matched

但是我得到以下错误,因此,returnuser语句失败

1 validation error detected: Value 'us-east-1_XXXXXX' at 'identityPoolId' 
failed to satisfy constraint: Member must satisfy regular expression pattern: [\w-]+:[0-9a-f-]+ 
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code: ValidationException; 

共有3个答案

姜俊逸
2023-03-14

请注意:您还可以在项目的aws-exports.js.中找到正确的用户池应用客户端ID属性名称为"aws_user_pools_web_client_id"

金秦斩
2023-03-14

你可以在用户池中找到它

孙文康
2023-03-14

您正在使用Cognito用户池id作为标识池id。它们是两个不同的东西。标识池ID的格式为us-east-1:XXXX-XXXXXX-XXXX-XXXX。

要获得身份池id,您应该使用Cognito控制台的“管理联合身份”部分,而不是“管理用户池”部分。希望这有帮助。

 类似资料:
  • 尝试将流数据从MYSQL迁移到Kinesis时出错。帮我修一下。 botocore.exceptions.ClientError:调用PutRecord操作时发生错误(ValidationException):检测到1个验证错误:“streamName”处的值“”未能满足约束:成员必须满足正则表达式模式:[a-zA-Z0-9.-]

  • 问题内容: 好的,因此任务似乎很简单!使用图像(因为它重量轻且安全)来执行一些数据库创建/迁移。我使用的是以下使用的代码在这里: 但是,由于某些错误,未使用安装依赖项。错误如下,我打开的这个问题中提供了完整的日志。 任何帮助表示赞赏。 问题答案: github上的代码包含另一个图像postgres:11-alpine与问题中定义的图像进行比较。 软件包gdal- dev ,geos- dev ,p

  • 嗨大家好, 我正在使用AWS S3 SDK 2.2.8将图像上载到S3。我已经在S3控制台中创建了Bucket。 我使用以下代码段上传文件。 我遇到了以下异常: com.amazonaws.AmazonServiceException:检测到1个验证错误:“accountId”处的值“XXXX-XXXX-XXXX”未能满足约束:成员必须满足正则表达式模式:\d(服务:AmazonCongnitoI

  • 我正在尝试使用AWS CDK创建AWS用户池客户端。我正在使用python代码进行此操作。下面是我的代码- 我已经尝试了不同的选项,作为"TOKEN","令牌","代码","代码","代码"。它仍然不起作用。对于上面的代码,我得到下面的错误- 我不知道这里出了什么问题。我引用此链接是为了:https://docs.aws.amazon.com/AWSCloudFormation/latest/Us

  • 我正在创建一个AWS CodePipeline资源与terraform: 运行时,在它返回 编辑: 新的部署阶段是: 我有这个应用程序创建使用: 组使用:

  • 为什么我会得到不满意的链接错误? 细节如下: 本机方法的原型及其在我的Java代码中的调用是这样的: 私有本机long sampleFunction(long[][]twoDimArray,long number); p.SampleFunction(twoDimArray,number); 本机方法在VC++代码中的原型是这样的: JNIEXPORT jlong JNICALL Java_MyC