如何在Flutter Web中使用Cognito进行登录?

5

我构建了一个Flutter Web应用程序,并且之前在AWS上设置了整个后端。因此,我想在我的应用程序中使用来自Cognito的现有用户池。但是我刚刚得知,AWS Amplify for Flutter仅支持Android和iOS,而不支持网络。你能为此提供任何解决方案吗?

1个回答

6
尝试使用这个包:https://pub.dev/packages/amazon_cognito_identity_dart_2
我一直在使用它,对 Android 和 Web 都有效;我想甚至在 iOS 上也能用。
Amplify 团队在官方的 Flutter 包中使用了现有 Android 和 iOS 实现的包装器(通过使用平台通道)。我猜这就是他们需要一段时间来解决 Web 问题的原因。
上述包基于 amplify-js,并使用 dart 重新编写,因此它将在任何平台上编译。
在我的项目工作区中,我创建了两个独立的项目:一个使用 amplify 创建后端对象,另一个是 Flutter 项目。所以,就像你的情况一样,我的 Flutter 项目连接到一个现有的 AWS 后端。

1
但问题在于,这个包在身份验证方面需要很长时间(大约8秒),这显然不是一个良好的用户体验。 - Prashant Kumar Singh
你说得对,我从来没有意识到这一点。我正在使用SharedPreferences来存储用户会话,所以您只需要偶尔登录一次。无论如何 - 这个页面有一个未解决的问题:https://github.com/furaiev/amazon-cognito-identity-dart-2/issues/123 - Andrija
1
@Andrija 我尝试按照这个包的第19个案例,但是WebView在Flutter Web上还不支持,无法打开我的联合登录页面。你是如何解决这个问题的?谢谢。 - Gary Zhang
我没有使用联合登录,只是基本的Cognito流程。我只渲染了一个Flutter页面,其中包含两个文本框和一个按钮,并按照示例中描述的方式使用了这个包。 - Andrija
1
有没有任何使用amazon_cognito_identity_dart_2包并使用Web视图进行Google登录的视频或文章? - LearnFlutter
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接