android - CognitoCachingCredentialsProvider.setLogins 中的 Key 使用什么值?
问题描述
我正在使用没有任何支持身份的 Cognito 用户池;用户池登录是唯一使用的身份验证(AWS Cognito Sign-In (Android))。在使用CognitoCachingCredentialsProvider
this 时,我遇到了一个问题,即我应该为 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 的正确键值应该是什么?
解决方案
确切的格式应该是一个字符串,例如:“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);
希望能帮助到你!
推荐阅读
- javascript - 反应:setState 没有再次呈现页面
- python - 使用python将数据写入文件
- ios - iOS 内部 UITableViewCell 中的动态视图
- javascript - 如何在 html 的 onclick 方法中检测 tab 键?
- forms - 如何更改自定义树枝表单主题中的标签位置
- angular - angular 7 html变量初始化
- batch-file - FOR命令未在脚本中执行
- javascript - JS 正则表达式 Html 匹配
- plugins - 如何使用 Telegraf 输入插件从 Kafka 的指标端点收集 JMX 指标
- postgresql - Odoo-10 的 CSV 二进制字段值存储在 postgres 中的什么位置?