我们已经完成了针对未经身份验证的访问的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()),令牌作为OpenID令牌。
但是我得到以下错误:
Caused by: com.amazonaws.services.cognitoidentity.model.InvalidParameterException: Please provide a valid public provider
有时我会收到以下错误消息:禁止使用身份ID。我不明白这些错误的原因。我引用了以下URL:https : //docs.aws.amazon.com/cognito/devguide/identity/developer-authenticated-identities/,https : //mobile.awsblog.com/post/Tx3E3NJURV1LNV1/Integrating-Amazon-Cognito-使用开发人员认证的身份。
请建议我如何解决这些错误,并提供一些更新的参考资料,以便我理解这些错误的原因。
Hurreyyy,我解决了AWS Cognito服务的开发人员身份验证问题。它易于理解,但很难实施。
这是解决方案:
CognitoSyncClientManager.init(this, cognitoParams); CognitoSyncClientManager.credentialsProvider.clearCredentials(); CognitoSyncClientManager.addLogins(AppConstants.DEVELOPER_PROVIDER, strToken);
并且您可以从CognitoSyncDemo获取CognitoSyncClientManager。谢谢大家
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句