首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

我在一家初创公司中使用了 AWS Cognito。我不会再这样做

2026-08-28 1 阅读 约6分钟阅读 speckx
分享:
字号:
当我为我们的初创公司设置身份验证三天后,我意识到出了问题。不是“我错过了一个分号”错误。更像是“我遵循了文档中的每一步,但密码重置流程仍然重定向到错误的位置”错误。我在十二个选项卡中打开了文档。我复制粘贴了代码示例。我什至看过某人的教程,听起来好像他们以前经历过这个噩梦。事情是这样的。我之前已经实现过身份验证。我与 Auth0 进行了较量,驯服了 Firebase Auth,甚至还研究了一个自定义 JWT 系统,虽然我并不为此感到自豪,但它确实有效。因此,当我们的初创公司需要身份验证并且团队倾向于 Cognito 时,因为“它已经在 AWS 生态系统中,并且前 50,000 名每月活跃用户是免费的”,我想,这有多糟糕?我对一切都感到后悔。文档是同时为五个不同的人编写的 阅读 Cognito 文档感觉就像有人拿了三本单独的手册,把它们扔进搅拌机,然后撒上一些过时的 Stack Overflow 答案来调味。 AWS 试图同时为太多受众提供服务。企业架构师想要了解底层身份协议。您的前端开发人员只想要一个登录表单。您的移动开发人员需要本机 SDK。这些文档试图成为每个人的一切,这意味着它们最终对任何人都没有用。我会搜索“Cognito 自定义属性验证”并登陆一个以有关目录模式的段落开头的页面,该段落假设我已经阅读了其他四个我不知道存在的页面。没有明确的线性路径。它只是一个由超链接和祈祷组成的网络。以及代码示例。哦,代码示例。其中一半用于旧的 JavaScript SDK。有些引用了 Amplify v1 API。其他人使用原始 AWS SDK。这些文档并不总是清楚地告诉您他们正在谈论哪个版本,因此您只能用 import 语句扮演侦探的角色。 Day Amplify v6 背叛了我 说到版本。让我告诉你 JavaScript 库的情况,因为这个确实让我措手不及。当我们开始构建时,Amplify 的版本是 5。我编写了我们的身份验证流程,对其进行了测试、提交,然后转向其他功能。几周后,我回来修复一个错误,并注意到控制台中出现了一些弃用警告。没问题,我想。我只会更新到最新版本。朋友们。 Amplify v6 不仅仅改变了一些方法签名。它从根本上重新构建了您与 Cognito 交互的方式。我构建的整个 UI 流程所围绕的功能都消失了。更换了。消失了。从技术上讲,迁移指南是存在的,但感觉更像是一张藏宝图,其中一半的地标缺失了。我重写了代码。没有重构。重写。在生产环境中运行良好的身份验证逻辑必须重新构建,因为库维护者认为旧的 API 不再是受祝福的路径。这不是升级。这是人质劫持的情况。本地开发是一种特殊的痛苦关于 Cognito,有一个有趣的事实:它是基于云的。我知道,令人震惊。但这实际上意味着您不能仅仅启动本地实例并离线测试您的身份验证流程。您始终会访问实际的 AWS 端点。现在,无服务器离线插件和本地 Cognito 模拟器等工具试图弥补这一差距。但它们是社区项目,具有不同程度的维护和保真度。 AWS 的官方故事基本上是“针对云进行测试”,这是一个很好的建议,除非您在飞机上,或者您的互联网不稳定,或者您只是想要快速迭代周期而不等待网络往返。我花了令人尴尬的时间来设置一个与真实情况不太匹配的本地模拟,这意味着错误会在本地溜走并出现在暂存中。本地开发的重点是尽早发现问题,而 Cognito 则积极反对这一点。您想要定制吗?我能做的就是设计一个标志 这个刺痛了。 Cognito 提供的托管 UI 功能齐全。它就在那里。大多数情况下它有效。但如果你希望它看起来像你的品牌,而不是像穿着戏服的 AWS 服务,那么你的日子就会很糟糕。您可以更改徽标。您可以通过控制台调整一些 CSS。但布局、结构、整体感觉如何?那是AWS的房子,你只是租一个房间。如果您需要基本定制之外的任何内容,社区的建议通常是“使用 SDK 构建您自己的 UI”。哪个,好吧,我明白了。但到那时,托管 UI 到底拯救了我什么呢?令我精神崩溃的纯电子邮件配置 让我告诉你我差点把笔记本电脑扔出窗外的那一刻。我们的应用程序只需要电子邮件身份验证。没有用户名。用户使用电子邮件注册、验证、设置密码,就完成了。简单的概念,对吧?因此,我进入 Cognito 用户池设置并将其配置为使用电子邮件地址作为登录标识
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱