适用于移动应用的AWS Cognito用户池设置

时间:2017-09-26 22:19:49

标签: amazon-web-services xamarin amazon-cognito

我真的很难让我的Xamarin移动应用程序中的用户注册和确认工作。我已经获得了注册请求,并且用户成功地在用户池中显示为未经证实。但是,当我尝试关注this general guide时(我使用的是Xamarin,扩展名为C#),我会在调用ConfirmSignUpAsync方法时收到NotAuthorizedException。

我是亚马逊网络服务的新手,我认为我可能有一些设置或角色配置错误阻碍了我确认用户。具体来说,我认为我需要有关用户池的App Client设置部分的帮助。我不认为这些会导致问题,因为我认为您不需要任何身份验证来注册和确认用户。以下是我目前在这些设置中的内容: App client settings

以下是我尝试使用验证码确认电子邮件地址的代码:

public async Task<Exception> VerifyEmail(String sUsername, String sVerificationCode)
    {

        CognitoAWSCredentials oCreds = new CognitoAWSCredentials(sIdentityPoolID, Amazon.RegionEndpoint.USEast2);
        AmazonCognitoIdentityProviderClient oClient = new AmazonCognitoIdentityProviderClient(oCreds, Amazon.RegionEndpoint.USEast2);
        CognitoUserPool oUserPool = new CognitoUserPool(sUserPoolID, sClientID, oClient);
        CognitoUser oCognitoUser = new CognitoUser(sUsername, sClientID, oUserPool, oClient);

        try
        {
            await oCognitoUser.ConfirmSignUpAsync(sVerificationCode, false);
            return null;
        }
        catch (Exception e)
        {
            return e;
        }
    }

1 个答案:

答案 0 :(得分:1)

尝试在AmazonCognitoIdentityProviderClient上使用AnonymousAWSCredentials,例如尝试更改:

AmazonCognitoIdentityProviderClient oClient = new AmazonCognitoIdentityProviderClient
(oCreds, Amazon.RegionEndpoint.USEast2);

AmazonCognitoIdentityProviderClient oClient = new AmazonCognitoIdentityProviderClient
(new AnonymousAWSCredentials(), RegionEndpoint.USEast2);