我真的很难让我的Xamarin移动应用程序中的用户注册和确认工作。我已经获得了注册请求,并且用户成功地在用户池中显示为未经证实。但是,当我尝试关注this general guide时(我使用的是Xamarin,扩展名为C#),我会在调用ConfirmSignUpAsync
方法时收到NotAuthorizedException。
我是亚马逊网络服务的新手,我认为我可能有一些设置或角色配置错误阻碍了我确认用户。具体来说,我认为我需要有关用户池的App Client设置部分的帮助。我不认为这些会导致问题,因为我认为您不需要任何身份验证来注册和确认用户。以下是我目前在这些设置中的内容:
以下是我尝试使用验证码确认电子邮件地址的代码:
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;
}
}
答案 0 :(得分:1)
尝试在AmazonCognitoIdentityProviderClient上使用AnonymousAWSCredentials,例如尝试更改:
AmazonCognitoIdentityProviderClient oClient = new AmazonCognitoIdentityProviderClient
(oCreds, Amazon.RegionEndpoint.USEast2);
到
AmazonCognitoIdentityProviderClient oClient = new AmazonCognitoIdentityProviderClient
(new AnonymousAWSCredentials(), RegionEndpoint.USEast2);