CognitoCachingCredentialsProvider.setLogins中的密钥要使用什么值?

时间:2018-09-06 19:53:29

标签: android amazon-web-services amazon-cognito aws-cognito

我使用的Cognito用户池没有任何后备身份;用户池登录名是唯一使用的身份验证(AWS Cognito Sign-In (Android))。在与此一起使用CognitoCachingCredentialsProvider时,我遇到了一个问题:似乎没有记录我应该将HashMapsetLogins中的Key用作什么值。我已经找到了第三方身份提供者的示例(“ accounts.google.com”,“ graph.facebook.com”,“ www.amazon.com”),但是使用了其中任何一种,或者我在某处找到的建议解决方案"www.cognito-idp.us-east-1.amazonaws.com/[UserPoolID]"或我最初尝试使用用户池本身的名称时,都给出了Invalid login token. Issuer doesn't match providerName的错误,而我已经耗尽了一些想法来随机抛出问题并希望它们起作用。

对于通过Cognito用户池直接验证的用户进入setLogins的HashMap,正确的密钥值应该是什么?

1 个答案:

答案 0 :(得分:1)

确切的格式应为字符串:“ cognito-idp”。 +区域+“ .amazonaws.com /” +用户池ID。这是我使用的代码-请注意,我所在的地区与您所在的地区不同,因此请编辑您的地区以使用us-east-1。

Map<String, String> logins = new HashMap<String, String>();
String iss = "cognito-idp.eu-central-1.amazonaws.com/" + AWSConstants.USER_POOLS_POOL_ID;
logins.put(iss, jwtToken);
credentialsProvider.setLogins(logins);

希望有帮助!