1

我已经在使用 AWS Cognito 对 Web 应用程序进行身份验证(使用托管 UI 和 flask_awscognito)。用户池已创建,所有用户创建或任何其他用户池管理均在应用程序之外完成(例如,直接通过控制台或 CloudFormation 或类似方式)。现在我们想要从 Android 应用程序中验证用户身份,事实证明,要找到如何做到这一点非常困难。

所有 AWS 文档都将您定向到 Amplify - 问题是 Amplify 希望您“初始化”并且在此过程中似乎需要 AWS 凭证,并且对于具有 CloudFormation 权限的用户以及简单地验证用户不需要这些东西。

是否有(任何文档)一种方法来简单地将用户身份验证到 Android 的 cognito 用户池?这应该类似于 Web 应用程序的身份验证,不同之处在于,如果需要,与托管 UI 的任何交互都必须是程序化的,而不是通过重定向到 AWS 托管的登录页面。

奇怪的是,从 Android 对用户池的简单身份验证(无需 AWS 凭证,或使用使用 Amplify 创建的用户池)既不简单,也不记录在案。还是我只是找不到它?

4

1 回答 1

0

事实证明,可以在没有 Amplify 的情况下从 Android 进行身份验证。诀窍是利用“深度链接”,可以将 URL 定向到设备上的应用程序。我们将一个 URL 添加到为用户池配置的回调 URL,并配置 Android 应用程序来处理这个 URL。流程如下:要从应用程序登录,应用程序会显示托管 ui 的 Web 视图,并指定新配置的回调 URL。当用户通过托管页面成功登录时,重定向会返回新 URL,应用程序现在会接收到该 URL。我们切换到直接请求令牌(而不是取回代码)以避免必须通过协议来交换令牌的代码。

这个问题的答案很有帮助: Cognito Hosted UI

于 2020-10-11T21:07:40.750 回答