【发布时间】:2015-10-04 00:45:51
【问题描述】:
我们已经为未经身份验证的访问集成了 AWS,但是当我们尝试进行身份验证的访问时,我们收到 InvalidParameterException: Please provide a valid public provider.
错误我们使用以下步骤将 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
有时我会收到以下错误: 身份 ID 被禁止。 我无法理解这些错误的原因。我参考了以下网址: 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.
请建议我如何解决这些错误并提供一些更新的参考资料,以便我了解这些错误的原因。
【问题讨论】:
-
您能否在您分配令牌的开发者提供商中分享代码?从您描述的错误来看,您似乎将其分配给登录映射,而不是令牌字段。
标签: android amazon-web-services amazon-s3 openid-connect amazon-cognito