首页 > 解决方案 > CognitoCachingCredentialsProvider.setLogins 中的 Key 使用什么值?

问题描述

我正在使用没有任何支持身份的 Cognito 用户池;用户池登录是唯一使用的身份验证(AWS Cognito Sign-In (Android))。在使用CognitoCachingCredentialsProviderthis 时,我遇到了一个问题,即我应该为 to 中的 Key 使用什么值HashMap似乎setLogins没有记录在案。我找到了第三方身份提供商的示例(“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,我没有想法随机抛出这个问题并希望他们能工作。

setLogins对于由 Cognito 用户池直接认证的用户,HashMap 的正确键值应该是什么?

标签: androidamazon-web-servicesamazon-cognitoaws-cognito

解决方案


确切的格式应该是一个字符串,例如:“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);

希望能帮助到你!


推荐阅读