gpt4 book ai didi

android - 我如何使用 Cognito Identity 对我的身份/用户池进行身份验证?

转载 作者:行者123 更新时间:2023-11-29 17:19:54 25 4
gpt4 key购买 nike

几天来我一直在尝试解决这个问题,但我无法弄清楚问题出在哪里。

我在 AWS Cognito 上有一个用户池和一个身份池。我已经运行了示例代码并使用它成功地登录并注册了 Facebook 和 Google+ 用户。登录后,我可以使用 token 进行身份验证以使用 SNS 或同步服务。

我已经使用 Cognito Identity 注册了一个用户并获得了一个 token (登录后)。但是,下一步是使用 token 对身份池进行身份验证。这是我不断收到错误的地方

我已按照 Integrating User Pools with Amazon Cognito Identity 中的说明进行操作然后我得到一个 token ,然后尝试将其与池 ID 一起传递给凭据提供者。

  credentialsProvider.clear();
credentialsProvider.withLogins(loginMap).refresh();

我的代码在 refresh() 上失败。此时 credentialsProvider 是一个 AWSBasicCognitoIdentityProvider 并且 refresh() 在 super.refresh() 中失败,它在抽象父类 AWSAbstractCognitoIdentityProvider 中调用 getIdentityId()

@Override
public String getIdentityId() {
if (identityId == null) {
GetIdRequest getIdRequest = new GetIdRequest()
.withAccountId(getAccountId())
.withIdentityPoolId(getIdentityPoolId())
.withLogins(loginsMap);

appendUserAgent(getIdRequest, getUserAgent());

GetIdResult getIdResult = cib.getId(getIdRequest);

无论我在 loginsMap 中输入什么值,我都会得到错误

Invalid login token. Issuer doesn't match providerName

在 cid.getid(getIdRequest)。

如果您在 Mobile Hub 中创建应用程序并生成代码,则大部分代码都可以免费下载。然后,您可以配置身份验证提供商 - FB、Google 等。

我做错了什么?

谢谢。

编辑 :以下是我尝试过的示例 token 始终是 map 中的对象。下面是不同的键

  • “cognito-identity.amazonaws.com”
  • 用户池 ID - us-east-1_xxxxxxxxx
  • 用户池 ARN - cognito-idp:us-east-1:xxxxxxxxxxxx:userpool/us-east-1_xxxxxxxxx

最佳答案

好的,我找到了答案 - 我在 loginMap 中输入了错误的键值。

应该是

cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>

正如问题中链接的文档中所说

我不知道我怎么没看到。

关于android - 我如何使用 Cognito Identity 对我的身份/用户池进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com