如何仅为经过身份验证的开发人员集成AWS Cognito?

时间:2015-07-15 06:03:05

标签: android amazon-web-services amazon-s3 openid-connect amazon-cognito

我们已经完成了对未经身份验证的访问的AWS集成,但是当我们尝试进行身份验证访问时,我们收到错误 InvalidParameterException:请提供有效的公共提供程序。

我们使用以下步骤将AWS集成到应用程序中:

DeveloperAuthenticationProvider developerProvider = new DeveloperAuthenticationProvider(
                    AppConstants.AWS_ACCOUNT_ID, AppConstants.IdentityPoolId, Regions.EU_WEST_1
            );
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
                    getActivity(),
                    developerProvider,
                    Regions.EU_WEST_1); 

//set Logings for Authenticated Access
HashMap<String, String> loginsMap = new HashMap<String, String>();
           loginsMap.put(developerProvider.getProviderName(), Token);
            credentialsProvider.setLogins(loginsMap);
            credentialsProvider.refresh();

我们已经完成了DeveloperAuthenticationProvider类,它扩展了AWSAbstractCognitoDeveloperIdentityProvider;我们提供开发者提供者名称(developerProvider.getProviderName()),Token作为OpenID令牌。

但是我得到了以下错误:

Caused by: com.amazonaws.services.cognitoidentity.model.InvalidParameterException: Please provide a valid public provider

有时我会收到以下错误: 禁止使用身份证。 我无法理解这些错误的原因。我提到了以下网址: https://docs.aws.amazon.com/cognito/devguide/identity/developer-authenticated-identities/https://mobile.awsblog.com/post/Tx3E3NJURV1LNV1/Integrating-Amazon-Cognito-using-developer-authenticated-identities-An-end-to-en

请建议我如何解决这些错误并提供一些更新的参考资料,以便我了解这些错误的原因。

3 个答案:

答案 0 :(得分:2)

看起来您正在登录地图中设置令牌,而不是developer guide中所述的开发者提供商的令牌字段。您可能还想参考我们在GitHub上提供的end-to-end example,其中包括iOS和Android的示例代码。

答案 1 :(得分:1)

Hurreyyy,我解决了AWS Cognito Service的开发人员身份验证问题。它易于理解但很难实现。

这是解决方案:

CognitoSyncClientManager.init(this, cognitoParams); CognitoSyncClientManager.credentialsProvider.clearCredentials(); CognitoSyncClientManager.addLogins(AppConstants.DEVELOPER_PROVIDER, strToken);您可以从CognitoSyncDemo获取CognitoSyncClientManager。 感谢所有

答案 2 :(得分:0)

确保您从developerProvider.getProviderName()返回的值与您在Amazon Cognito控制台中注册的值相同,如Associate Developer Provider section of the Developer Authenticated Identities topic in the Amazon Cognito Developer Guide下的步骤所述。