2017-02-17 115 views
3

我使用AWS CognitoAWS-CPP-SDK我的应用程序。我定义了一个用户池和一个应用程序,然后我得到了应用程序客户端ID和应用程序密码 我可以创建用户池对象:AWS Cognito NotAuthorizedException客户端尝试写未经授权的属性

Aws::Client::ClientConfiguration clientConfig; 
    clientConfig.region = 
     Aws::Region::EU_CENTRAL_1; // "RegionEndpoint.EUCentral1"; 
    clientConfig.scheme = Aws::Http::Scheme::HTTPS; 
    clientConfig.connectTimeoutMs = 30000; 
    clientConfig.requestTimeoutMs = 600000; 

    CognitoIdentityProviderClient client; 
    client = CognitoIdentityProviderClient(clientConfig); 

    DescribeUserPoolClientRequest describeUserPoolClientRequest; 
    describeUserPoolClientRequest.WithUserPoolId(POOL_ID) 
     .WithClientId(TEST_APP_CLIENT_ID); 
    DescribeUserPoolClientOutcome describeUserPoolClientOutcome = 
     client.DescribeUserPoolClient(describeUserPoolClientRequest); 

我定义后与SignUpRequest的用户,出现了这样的错误:NotAuthorizedException客户端尝试写未经授权的属性

这是我注册代码:

SignUpRequest signUpRequest; 
    signUpRequest.SetClientId(describeUserPoolClientOutcome.GetResult() 
            .GetUserPoolClient() 
            .GetClientId()); 
    signUpRequest.SetUsername("xxxxx"); 
    signUpRequest.SetPassword("xxxxxx?"); 
    AttributeType email, phone_number, gender, given_name, family_name, picture; 
    email.WithName("email").WithValue("[email protected]"); 
    phone_number.WithName("phone_number").WithValue("+xxxxx"); 
    given_name.WithName("given_name").WithValue("xxx"); 
    family_name.WithName("familiy_name").WithValue("xxx"); 
    gender.WithName("gender").WithValue("MALE"); 
    picture.WithName("picture").WithValue(
     "http://xxxx"); 
    signUpRequest.AddUserAttributes(email); 
    signUpRequest.AddUserAttributes(phone_number); 
    signUpRequest.AddUserAttributes(given_name); 
    signUpRequest.AddUserAttributes(family_name); 
    signUpRequest.AddUserAttributes(gender); 
    signUpRequest.AddUserAttributes(picture); 

    SignUpOutcome signUpOutcome = client.SignUp(signUpRequest); 

问题是什么?我该如何解决它?

回答

0

OMG!异常的原因只是写错了。这个问题可以通过在这条线上纠正从家族到家族的打字错误来解决:

family_name.WithName("familiy_name").WithValue("xxx"); 
5

在AWS网站去你的用户群 - >应用程序 - >显示详细信息 - >设置属性读写权限。确保你在可写属性列表中写入的每个属性都是我的,并且它们有一个复选标记。

+0

谢谢你的回复。我应用了它,但问题仍然存在。 – gkhanacer

相关问题