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

标签 android authentication amazon-web-services identity amazon-cognito

我几天来一直在尝试解决这个问题,但我不知道问题出在哪里。

我在 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();

我的代码在刷新()时失败。此时credentialsProvider是一个AWSBasicCognitoIdentityProvider,并且refresh()在super.refresh()中失败,该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);

无论我在登录映射中输入什么值,我都会收到错误

Invalid login token. Issuer doesn't match providerName

在 cid.getid(getIdRequest) 处。

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

我做错了什么?

谢谢。

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

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

最佳答案

好的,我找到了答案 - 我在登录映射中输入了错误的键值。

应该是

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

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

我不知道我怎么没看到这一点。

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

相关文章:

amazon-web-services - Redshift 系统表是否不可变且有序?

python - Django AWS Elastic Beanstalk WSGIPath 引用了一个不存在的文件

android - Recycler View 内部 Recycler View 不滚动

javascript - 在没有页面刷新的情况下触发everyauth登录过程(facebook auth)

java - 使用 Spring Security BCryptPasswordEncoder 散列密码时凭据错误

java - Play 框架 session 和 cookie 是如何工作的?

amazon-web-services - 适用于任何用户的 AWS::IAM::策略

javascript - Android webview视频没有达到readyState=4

android - MediaPlayer 不会循环播放。 setLooping() 不起作用

android - 撰写 : Create Text with Circle Background