【问题标题】:Using open source libraries instead of AWS Amplify SDKs使用开源库而不是 AWS Amplify 开发工具包
【发布时间】:2021-04-11 18:58:27
【问题描述】:

我发现适用于 iOS 的 Amplify SDK 难以使用,可能是因为我们似乎不适合他们的目标受众。 Amplify 为移动开发人员提供 BaaS 解决方案,因此 Amplify SDK 非常适合此用例。但是,我们的团队有专门的 DevOps 工程师,他们使用 Terraform 来预置 AWS 资源。虽然他们的文档指出可以将 Amplify SDK 与预先存在的资源一起使用,但我发现它充其量是笨重的——不得不手动配置具有有限文档的 amplifyconfiguration.json 文件令人沮丧,而且我有一个让 Auth SDK 与我们的 Cognito 设置一起工作有很多困难。再加上供应商锁定,让我重新考虑将 Amplify SDK 集成到我们的移动客户端的决定。

这引出了我的问题:使用开源客户端库而不是 Amplify SDK 与 AWS 资源集成有什么明显的缺点吗?考虑到我们不需要 Amplify 的 BaaS 方面,只需要通过 Cognito 的 OAuth 和通过 AppSync 的 GraphQL,我们可以使用 AppAuth 和 Apollo 等库完全放弃 Amplify 吗?

【问题讨论】:

  • 您尝试过 cognito 主机 UI 吗?
  • 是的,我们正在使用主机 UI(并将继续这样做,即使我们决定不继续使用 Amplify SDK)。

标签: ios amazon-web-services amazon-cognito aws-amplify aws-appsync


【解决方案1】:

Amplify 有不同的组件,虽然一开始并不明显:

  • AWS 控制台中的 Devops 工具可在控制台的 Amplify 部分中自动化、部署证书等
  • 有用于部署和管理应用程序以及生成 Cloudformation 模板的 CLI 工具链。
  • 最后也是最重要的一点是 Amplify 客户端库,它与 Cognito 配合得很好。

您可以简单地自己使用客户端库,然后调用(在 Javascript 示例中;Amplify.configure()。如果您愿意,它们可以单独使用 Cognito,(我们也这样做了,我们不这样做' t 使用 cli 部署我们的前端)。

您也不需要使用他们的REST 客户端,但您需要捕获身份验证事件和相关令牌,并在您的请求中适当地使用它。

总之,听起来您不想使用整个 Amplify 平台,只是他们的客户端库,您可以像使用任何其他库一样使用它们。为您的框架复制他们的 Cognito 登录示例,并手动配置 Amplify,而不是使用 cli 生成项目和凭据(user-pool-id、appclient、域)。

【讨论】:

  • 感谢您的回复。我知道我们可以将客户端库与 Amplify 工具链的其余部分分开使用,但是我发现它太固执己见了。当尝试做比他们提供的示例更复杂的事情时,它似乎也会崩溃(例如handling deeplinked OAuth redirect via Universal Link instead of URL schemes)。我基本上是在寻找一个令人信服的论点来继续与 Amplify 抗争以使其适用于我们的用例,而不是完全放弃它以支持开源 SDK
  • 如果您只打算使用 OAUTH,则无需使用 Amplify。 Amplify 负责 TOTP、重定向、登录、忘记密码、刷新等繁重的工作,删除大量样板。
  • 我们已经走上了使用 Cognito 托管 Web UI 的路线,在没有 Amplify 的情况下我们已经处理了很多。我想我越来越倾向于完全放弃 SDK 并推出我们自己的。感谢您的洞察力。
猜你喜欢
  • 2021-03-06
  • 2021-11-09
  • 2017-03-08
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 2011-11-10
  • 2012-05-24
  • 2015-04-07
相关资源
最近更新 更多