使用 Android 和网络 (JavaScript) 的经过身份验证的用户

Authenticated users with both Android and web (JavaScript)

我尝试使用新的用户池为经过 Cognito 身份验证的用户同步数据。

根据建议here: "Note that the generate client secret box must be unchecked because the JavaScript SDK doesn't support apps that have a client secret."

另一方面,Android 仅支持具有客户端密码的应用程序。

所以我向用户池添加了 2 个应用程序,一个有客户端密钥,一个没有。

但是,在身份池中,我只能添加一个 App Client ID 作为身份验证提供程序。

所以我得到:"com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Token is not from a supported provider of this identity pool." 尝试为 Android 应用程序使用经过身份验证的令牌时。

我做对了吗,还是我遗漏了什么?

谢谢!

想通了。 可以通过 IAM 添加多个(最多 100 个)应用程序或 "audiences" 到 OIDC 提供商,如 here

所述

所以我设置了 OIDC 并将其作为身份验证提供程序添加到身份池中。

既然您已经找到了解决方案,那么再想一想:

On the other hand for Android only apps with a client secret are supported.

用于 Cognito 用户池的 Android SDK 应该允许您在没有秘密的情况下处理应用程序,您应该能够将该值设置为 null。如果您有兴趣,请查看 sample app 了解更多详情。