【问题标题】:Authenticated users with both Android and web (JavaScript)通过 Android 和 Web (JavaScript) 验证的用户
【发布时间】:2016-11-13 13:43:17
【问题描述】:

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

根据here 的建议: “请注意,必须取消选中生成客户端密码框,因为 JavaScript SDK 不支持具有客户端密码的应用程序。”

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

所以我在用户池中添加了 2 个应用程序,一个带有客户端密码,一个没有。

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

所以我得到:“com.amazonaws.services.cognitoidentity.model.NotAuthorizedException:令牌不是来自此身份池的受支持提供商。”尝试为 Android 应用使用经过身份验证的令牌时。

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

谢谢!

【问题讨论】:

    标签: javascript android amazon-web-services authentication amazon-cognito


    【解决方案1】:

    想通了。 可以通过 IAM 向 OIDC 提供商添加多个(最多 100 个)应用程序或“受众”,如 herehere 中所述

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

    【讨论】:

    • 来自 Cognito 的开发人员。目前 Cognito 支持多个应用程序客户端 ID,但控制台不反映它。对此的修复在我们的积压工作中,很快就会推出。同时,一种选择是使用 CLI 更新您的池,您应该继续使用 CLI 更新您的池,直到部署修复程序。 docs.aws.amazon.com/cli/latest/reference/cognito-identity/… 是的,也可以将用户池集成为 OIDC 提供商。
    【解决方案2】:

    既然您已经制定了解决方案,那么还有一个想法:

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

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

    【讨论】:

    • 这根本不是问题。
    • 已编辑答案以使其更加清晰。我并没有试图回答最初的问题,因为您已经找到了解决方案,而是为了将来可能会发现此问题的读者指出其中不正确的部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多