为经过身份验证的用户获取凭据提供程序

Get Credential Provider for Authenticated Users

我的 android 应用程序使用 Google 登录 另外,我正在尝试将它与 Cognito 集成。当我 运行 应用程序时,它会给我 Cognito 凭据提供者 ID,当我使用 Google Plus 登录时,它会给我 Google 令牌。我检查了我的 AWS Cognito,它向我显示了这个。

Unauthenticated connections 3
Google Sign-in 0.

但是当它用Google正常登录的时候,还给我GoogleToken,那我是哪里做错了?

编辑 1: 这是我的代码:

Login with Google Plus

Cognito Sync Client Manager

将来,您可能希望包含应用程序中的相关代码,以更好地帮助其他人帮助您。

您是否遵循了 integrating identity providers 的指南?

同样重要的是要注意 CredentialsProvider 执行延迟加载,这意味着简单地将令牌添加到提供者不会关联身份。为确保令牌实际链接到身份,您可以:

  • 调用另一个使用此提供程序的服务(例如 SyncManager)(推荐
  • 在您的 CredentialsProvider 上明确调用 refresh。 (仅推荐用于测试目的

编辑 1

您是否添加了我在原始答案中建议的测试?如果是这样,如果您收到任何错误怎么办?

您可能想尝试以下某些步骤来验证您的配置:

  • 通过 jwt.io 检查令牌。验证令牌的 azp 字段是否与输入到 Cognito 控制台的值匹配。
  • 通过 IAM console 创建 OpenId Connect 提供商,从 Google 控制台添加所有客户端 ID。使用此提供商而不是 Amazon Cognito 身份池中的基本 Google+ 集成。